AngularJS组件:如何避免观察者查看未使用的绑定

时间:2019-06-26 12:36:35

标签: angularjs angularjs-components

我有一个重复多次的组件,并希望避免过度观看。

  angular
    .module('myModule')
    .component('component', {
      template: '',
      bindings: {
        code: '@',
        problemBinding: '<',
      },
      controller: componentController,
    });

尽管大多数组件未在html中使用<参数,但每个problem-binding绑定似乎都创建了一个观察者。这在this plunkr中得到了证明,其中每个新的<绑定都创建了与重复组件数量一样多的观察者。

是否有一种使用problemBinding的方式,以便当且仅当使用了参数时,它才为组件创建观察者?

2 个答案:

答案 0 :(得分:1)

  angular
    .module('myModule')
    .component('component', {
      template: '',
      bindings: {
        code: '@',
        problemBinding: '<?',
      },
      controller: componentController,
    });

通过将@添加到表达式中,可以使所有4种绑定(=<&?)成为可选的。标记必须位于模式之后和属性名称之前。

有关更多信息,请参见

答案 1 :(得分:1)

如果大多数组件未使用'problemBinding',请将其设置为可选,否则尽管使用了绑定,但仍将创建该绑定的监视。可以参考有角度的文档。