gpt4 book ai didi

dart - 指令构造函数内的数据绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 04:07:29 25 4
gpt4 key购买 nike

我正在尝试将函数(this.getData)绑定(bind)到指令构造函数中的变量(评级):

@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()}}

“评级”为空。当我进行绑定(bind)时,例如当鼠标进入元素时,情况并非如此:

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

并且当鼠标进入元素时绑定(bind)发生良好(评级不为空)。如何解决这个问题?

最佳答案

如果您在构造函数中分配函数,则不需要

 'rating' : '<=>rating'

您可以从标记中的表达式中调用任何方法。
map 或注释( 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()}} 调用该方法

关于dart - 指令构造函数内的数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21605104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com