我正在将一些 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/