AngularJS 组件:如何避免监视未使用的绑定

AngularJS Component: How to avoid watchers for unused bindings

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

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

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

有没有办法使用 problemBinding 以便当且仅当使用参数时为组件创建观察器?

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

所有 4 种绑定(@=<&)都可以通过在表达式中添加 ? 来设为可选.标记必须位于模式之后和属性名称之前。

有关详细信息,请参阅

如果您的大部分组件未使用 'problemBinding',请将其设置为可选,否则它会为该绑定创建监视,尽管它已被使用。可以参考 angular 文档。