2014-02-06 55 views
1

我想一個指令構造函數中的一個函數(this.getData)綁定到一個變量(等級):數據指令構造函數中結合

@NgDirective(
    selector: '[spreadsheet]', 
    map: const { 
    'rating' : '<=>rating' 
    }) 

class Spreadsheet { 
    dom.Element element; 

    Function rating; 

    getData(){ 
    return context.callMethod(r'$', [this.element]) 
    .callMethod('handsontable', ['getData']); 
    } 

    Spreadsheet(this.element) { 
    context.callMethod(r'$', [this.element]) 
    .callMethod('handsontable', [new JsObject.jsify(options)]); 

    **rating = this.getData;** 
    } 
} 

,似乎「評級」在我訪問它時未被賦予「this.getData」:

<p spreadsheet rating="rating"></p> 
{{rating()}} 

「rating」爲空。這不是這種情況時,我的,例如當鼠標進入元件結合:

... 
Spreadsheet(this.element) { 
    element 
    ..onMouseEnter.listen((ev){this.rating = this.getData;}); 
... 

並且當鼠標進入元件(等級不爲空)的結合發生細。這可以如何解決?

回答

0

如果分配在構造函數你將不再需要

'rating' : '<=>rating' 

可以在標記調用任何方法從你的表情。 映射或註釋(What is the annotation equivalent of map: const {'foo':'&foo'} in AngularDart?What is the equivalent annotation for the old map/@attr in AngularDart?)僅用於同步屬性和字段值。

如果你也希望能夠分配從外面你需要@而不是<=>@NgCallback('rating')功能(見What is the equivalent annotation for the old map/@attr in AngularDart?

您應該設置publishAs: 'ctrl',並呼籲使用{{ctrl.rating()}}

+0

我可以公開方法像'publishAs'這樣的指令?我想要實現的是與「NgCallBak」相反的,即我想能夠從外部調用組件/指令的方法來獲取數據。 –

+0

您的評論是爲我抽象。 你可以用一個簡單的例子來說明你的問題嗎?這個例子描述了你實際上想要實現的內容嗎?' –