在分配属性值后执行某些操作

时间:2014-07-02 15:00:23

标签: dart angular-dart

我想在使用angular dart设置成员之后进行一些映射:

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

我使用角度v 0.12。调用构造函数时,step仍为null。 我可以用表达式来表达,但我只想做一次,所以这个解决方法不是我想要的方式。

1 个答案:

答案 0 :(得分:1)

您可以实施AttachAware并将您的代码放入attach()方法 通过实施ShadowRootAwareonShadowRoot()可以实现类似的行为。

您需要给Angular一些时间来评估绑定并分配值。根据您的要求使用这些方法之一。

有时可能有助于(另外)将代码包装到

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
}