AngularJs 1.5 ES6:控制器中的绑定未定义

时间:2016-11-02 12:15:35

标签: angularjs es6-class angular-components

传递给组件的

绑定在html中工作,但在控制器中未定义。

<hero value="foo"></hero>

hero.component.js

import template from './hero.html';
import controller from './hero.controller';

let heroComponent = {
  restrict: 'E',
  bindings: {
    value: '@'
  },
  template,
  controller
};

HeroController.js

class HeroController {
  constructor() {
    this.name = 'hero';
    console.log(this.value); // undefined!
  }
}

hero.html

<section class="hero">
  <h1>AngularJs ES6 Example</h1>
  <!-- Value is works within template -->
  <h3>You can find me inside {{ $ctrl.name }}.html {{ $ctrl.value }}</h3>
</section>

我正在使用角度版1.5.0

2 个答案:

答案 0 :(得分:3)

在构造函数调用期间不太可能解析绑定。内部的角度是实例化控制器并注入调用构造函数的依赖项。然后,填充绑定。

您应该使用生命周期挂钩start_dateUPDATE campaigns SET start_time = ( date (campaigns.start_date + interval '0 hour') AT TIME ZONE u.timezone ) FROM users AS u WHERE campaigns.start_time IS NULL AND campaigns.start_date IS NOT NULL AND u.id = campaigns.user_id 。请查看开发人员指南here(关于生命周期挂钩的相关部分大约是页面的一半)。

答案 1 :(得分:2)

它是未定义的,因为在api调用后加载了值,使用ng-if解决了问题

<hero ng-if="$ctrl.value" value="$ctrl.value"></hero>