angularjs – Angular 1.5组件属性存在

前端之家收集整理的这篇文章主要介绍了angularjs – Angular 1.5组件属性存在前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为角度1.5风格的组件重构一些角度指令.

我的一些指令具有依赖于某个属性存在的行为,因此没有该属性具有特定的布尔值.使用我的指令,我使用链接功能完成此操作:

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

我如何使用角度1.5样式的组件语法?

我能做的一件事就是添加一个绑定,但是我需要指定一个布尔值.我想按原样保留我的模板.

使用绑定而不是直接引用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>

使用单向绑定(由’<'表示)控制器实例上的变量'sortable'的值(此处为视图模型命名为vm)将是布尔值true,如果设置如示例所示.如果您的sortable属性当前在模板中包含一个字符串,那么'@'绑定也可能是一个合适的选择.在这种情况下,vm.sortable的值将是一个字符串(如果在组件标记上未定义属性,则为undefined). 检查仅仅存在可排序属性的方式如下:

bindings: { sortable: '@' }

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

猜你在找的Angularjs相关文章