在用 Angular 镖设置成员后,我想做一些映射:
@Component(
selector: 'travel-step',
templateUrl: 'packages/TravelPlanner/travelstep/travel_step_component.html',
useShadowDom: false,
publishAs: 'cmp')
class TravelStepComponent {
// Deprecated but impossible to replace, since the new syntax is not ready
@NgTwoWay('step')
TravelStep step;
TravelStepComponent() {
// step is null at the moment
}
}
我正在使用 Angular v.0.12。调用构造函数时,step仍然为null。
我可以用watch表达式来做,但是我只想做一次,所以这种解决方法不是我想要的。
最佳答案
您可以实现AttachAware
并将代码放入attach()
方法中。
通过实现ShadowRootAware
和onShadowRoot()
可以实现类似的行为。
您需要给Angular一些时间来评估绑定(bind)并分配值。根据您的要求使用这些方法之一。
有时,这可能有助于(另外)将您的代码包装到
new Future(() {
your code here
});
延迟执行代码。
另一种方法是实现 setter 并在那里执行逻辑
@NgTwoWay('step')
TravelStep _step;
TravelStep get step => _step;
set step(TravelStep s) {
// your code here
_step = s;
// or here
}
关于dart - 分配属性值后执行一些操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24534507/