最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解angular2采用自定義指令(Directive)方式加載jquery插件

 更新時(shí)間:2017年02月09日 16:01:49   作者:Liuyt  
本篇文章主要介紹了詳解angular2采用自定義指令(Directive)方式加載jquery插件 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

由于angular2興起不久,相關(guān)插件還是很少,所以有時(shí)候不得不用一些jquery插件來(lái)完成項(xiàng)目,

那么如何把jquery插件放到angular2中呢?采用自定義指令!

在上下文之前要引入jquery,這點(diǎn)不再描述

首先創(chuàng)建一個(gè)指令,采用@input方式,來(lái)獲取jquery插件所需要的參數(shù)。

在ngOnChanges時(shí),也就是參數(shù)通過(guò)@input傳入時(shí),初始化jquery插件,

初始化jquery插件需要獲取dom元素,所以我們引入ElementRef,用來(lái)獲取dom元素

這里需要講一下,jquery中回調(diào)函數(shù),如果直接使用this,回調(diào)是無(wú)法獲取angular的函數(shù)的

所以這里采用bind的形式,把this傳遞進(jìn)去。這樣在angular中的函數(shù)才會(huì)被正確調(diào)用。

以下為實(shí)現(xiàn)時(shí)間插件的代碼:

import { Directive, Output, Input, ElementRef, EventEmitter } from '@angular/core';

// 引入jquery.daterangepicker插件相關(guān)JS和css,Css打包時(shí)需要打包成單個(gè)文件,或者直接在html單獨(dú)引用
// 如何單獨(dú)打包請(qǐng)看下節(jié)代碼

require('../../../../assets/lib/bootstrap-daterangepicker-master/daterangepicker.js');
require('../../../../assets/lib/bootstrap-daterangepicker-master/daterangepicker.css');

// 自定義指令
@Directive({
 selector: '[dateRangePicker]',
})

export class DateRangePicker {

 /**
  * jquery.daterangepicker插件所需的參數(shù)
  * 參數(shù):http://www.daterangepicker.com/#options
  */
 @Input() public dateRangePickerOptions: IJQueryDateRangePicker;

 // 選中事件
 @Output() selected: any = new EventEmitter();

 /**
  * 初始化
  * @param _elementRef
  */
 constructor(private _elementRef: ElementRef) {
 }

 /**
  * 屬性發(fā)生更改時(shí)
  * @private
  */
 ngOnChanges() {
  $(this._elementRef.nativeElement).daterangepicker(this.dateRangePickerOptions, this.dateCallback.bind(this));
 }

 /**
  * 時(shí)間發(fā)生更改時(shí)使用emit傳遞事件
  * @private
  */
 dateCallback(start, end) {
  let format = "YYYY-MM-DD";
  if (this.dateRangePickerOptions.locale.format) {
   format = this.dateRangePickerOptions.locale.format;
  }
  let date = {
   startDate: start.format(format),
   endDate: end.format(format),
  }

  this.selected.emit(date);
 }

}

import { Component } from '@angular/core';
import { DateRangePicker } from '../../theme/directives';


@Component({
 selector: 'dashboard',
 template: `
   <div class="form-group">
        <label for="startDate">{date.startDate}</label>
        <input 
        dateRangePicker 
        [dateRangePickerOptions]="option"    
        (selected)="dateSelected($event)" 
        type="text" 
        class="form-control">
   </div>
 `,
 directives: [DateRangePicker]
})
export class Dashboard {

 /**
  * 當(dāng)前選中的時(shí)間
  */
 public date: any

 /**
  * jquery時(shí)間插件參數(shù)
  */
 private option: Object = {
  locale: {
   format: "YYYY-MM-DD",
   separator: " 至 ",
   applyLabel: "確定",
   cancelLabel: '取消',
   fromLabel: '起始時(shí)間',
   toLabel: '結(jié)束時(shí)間',
   customRangeLabel: '自定義',
   daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'],
   monthNames: ['一月', '二月', '三月', '四月', '五月', '六月',
    '七月', '八月', '九月', '十月', '十一月', '十二月'],
   firstDay: 1
  },
 };

 constructor() {
 }

 /**
  * emit回調(diào)事件,獲取選中時(shí)間
  * @param date
  */
 dateSelected(date) {
  this.date = date;
 }
}

另外注意,css需要另外單獨(dú)打包,或html單獨(dú)引用,如何打包c(diǎn)ss,請(qǐng)看最后,我這里是用webpack打包的

// 采用ExtractTextPlugin單獨(dú)對(duì)jquery插件進(jìn)行css打包
loaders: [{
    test: /daterangepicker\.css$/,
    loader: ExtractTextPlugin.extract('style-loader', 'css-loader')
   }]

plugins: [
     new ExtractTextPlugin('[name].css', {
      allChunks: true
     })]

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入理解Angular中的依賴注入

    深入理解Angular中的依賴注入

    本篇文章主要介紹了深入理解Angular中的依賴注入,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 在 Angular 中使用 ViewChild 訪問(wèn)子組件、指令或 DOM 元素的操作方法

    在 Angular 中使用 ViewChild 訪問(wèn)子組件、指令或 D

    這篇文章主要介紹了如何在 Angular 中使用 ViewChild 來(lái)訪問(wèn)子組件、指令或 DOM 元素,在本教程中,您使用了 ViewChild 來(lái)從父組件類中訪問(wèn)指令、子組件和 DOM 元素,需要的朋友可以參考下
    2024-08-08
  • AngularJS中的promise用法分析

    AngularJS中的promise用法分析

    這篇文章主要介紹了AngularJS中的promise用法,結(jié)合實(shí)例形式分析了AngularJS異步處理模式promise具體功能、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • Angular2.0/4.0 使用Echarts圖表的示例代碼

    Angular2.0/4.0 使用Echarts圖表的示例代碼

    本篇文章主要介紹了Angular2.0/4.0 使用Echarts的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • AngularJS實(shí)現(xiàn)的base64編碼與解碼功能示例

    AngularJS實(shí)現(xiàn)的base64編碼與解碼功能示例

    這篇文章主要介紹了AngularJS實(shí)現(xiàn)的base64編碼與解碼功能,結(jié)合實(shí)例形式分析了AngularJS字符串base64編碼與解碼操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • AngularJS使用ng-options指令實(shí)現(xiàn)下拉框

    AngularJS使用ng-options指令實(shí)現(xiàn)下拉框

    這篇文章主要介紹了AngularJS使用ng-options指令實(shí)現(xiàn)下拉框效果,ng-option指令使用也很簡(jiǎn)單,下文具體給大家說(shuō)明,對(duì)angularjs 下拉框知識(shí)感興趣的朋友一起看下吧
    2016-08-08
  • Angular中的Promise對(duì)象($q介紹)

    Angular中的Promise對(duì)象($q介紹)

    這篇文章主要介紹了Angular中的Promise對(duì)象($q介紹),本文講解了Promise模式、Q Promise的基本用法、AngularJs中的$q.defferd等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 談?wù)凙ngularJs中的隱藏和顯示

    談?wù)凙ngularJs中的隱藏和顯示

    本文給大家介紹angularjs 隱藏和顯示,對(duì)angularjs 隱藏和顯示相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Angularjs單選改為多選的開發(fā)過(guò)程及問(wèn)題解析

    Angularjs單選改為多選的開發(fā)過(guò)程及問(wèn)題解析

    在項(xiàng)目中遇到這樣的需求想把下拉框的單選改為多選,怎么實(shí)現(xiàn)呢?下面小編通過(guò)本文給大家分享angularjs單選改為多選的開發(fā)過(guò)程及問(wèn)題解析,需要的朋友參考下
    2017-02-02
  • angular雙向綁定模擬探索

    angular雙向綁定模擬探索

    這篇文章主要和大家一起探索模擬angular的雙向綁定,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評(píng)論

瓮安县| 游戏| 鹤岗市| 绵阳市| 华池县| 绥芬河市| 汝城县| 马山县| 海丰县| 宜良县| 元氏县| 额尔古纳市| 菏泽市| 阿瓦提县| 韶关市| 襄城县| 嵊泗县| 舟山市| 通州市| 高安市| 蒲江县| 龙口市| 南平市| 阜南县| 洞头县| 海林市| 四子王旗| 舟曲县| 会泽县| 宜兴市| 桐柏县| 长兴县| 镇安县| 十堰市| 湟中县| 南汇区| 衡阳县| 天长市| 盐边县| 古浪县| 上犹县|