我正在将一些 Angular 指令重构为 Angular 1.5样式的组件。

我的某些指令的行为取决于存在的某个属性,因此该属性没有特定的 bool 值。通过我的指令,我使用链接功能来完成此任务:

link: function(scope,elem,attrs, controller){
      controller.sortable = attrs.hasOwnProperty('sortable');
    },

我将如何使用有 Angular 的1.5样式的组件语法执行此操作?

我可以做的一件事是添加绑定(bind),但是随后我需要指定 bool 值。我想保持模板不变。

最佳答案

使用绑定(bind)而不是直接引用DOM属性:

angular.module('example').component('exampleComponent', {
  bindings: {
    sortable: '<'
  },
  controller: function() {
    var vm = this;
    var isSortable = vm.sortable;
  },
  templateUrl: 'your-template.html'
});

模板:
<example-component sortable="true"></example-component>

如果如示例中所示设置,则使用单向绑定(bind)(由“
检查仅存在sortable属性是这样的:
bindings: { sortable: '@' }

// within the controller:
var isSortable = vm.sortable !== undefined;

关于angularjs - Angular 1.5组件属性存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37438408/

10-13 03:24