2016-11-16 87 views
0

我創建基於ES6風格指令:呼叫鏈接功能指令角1 ES6

export default class myDirective { 
    constructor() { 
     this.restrict = 'E'; 
     this.scope = {}; 

     this.link = link; 
    } 
    link() { 
     console.log('link myDirective'); 
    } 
} 

然後在index.js

import angular from 'angular'; 

import myDirective from './myDirective'; 

export default angular 
       .module('app.directives', []) 
       .directive('myDirective ',() => new myDirective()) 
       .name; 

但是,當我打電話myDirective對HTML這樣的:<my-directive><my-directive>它不調用鏈接函數或編譯函數。我能做什麼?

+0

你能嘗試刪除this.link =鏈接;來自構造函數。 –

+0

我試過但不起作用:/ –

+0

恩,它對我來說工作正常。唯一的問題是,你的指令有一個空格字符的名稱,打破了聲明(「myDirective」,刪除空間),儘管如此,它爲我工作。 –

回答

0

我們使用ES6這裏,我們的指令不真正的樣子,我就舉一個例子:

import templateUrl from './some.html'; 
import SomeController from './someController'; 
export default() => ({ 
    templateUrl, 
    controller: SomeController, 
    controllerAs: 'vm', 
    scope: { 
    someVariable: '=' 
    }, 
    link: (scope, element, attrs, controller) => { 
    scope.link = { 
     someFunction: function some() { } 
    } 
    }, 
    bindToController: true 
}); 

你的想法呢。嘗試像這樣構建它,看看鏈接函數是否按照您的預期工作。

+0

嘿rrd,謝謝你!我會試試! –