在用 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()方法中。
通过实现ShadowRootAwareonShadowRoot()可以实现类似的行为。

您需要给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/

10-12 06:54