AngularJS指令标签中没有值的属性

时间:2016-07-21 18:43:12

标签: angularjs angularjs-directive

是否可以在AngularJS指令标记中捕获单个单词属性(一个没有值),而不需要为其分配值,并在Controller中提供该值?

例如:

<my-input type="radio" checked></my-input>

...而不是要求输入checked="true"

有一个解决方案可以在指令linkAttribute without value in AngularJS directive)中访问这些值,但我不清楚如何在控制器中访问这些值。

2 个答案:

答案 0 :(得分:1)

您可以在范围内尽可能多地使用控制器中的attrs。

app.directive('myInput', [function () {
    return {
        restrict: 'E',
        controller: function($scope,$element,$attrs){
        }
    };
}]);

查看the $compile/directive definition object official doc,但向下滚动到控制器构造函数部分。

  

控制器是可注射的(并支持括号表示法),具有以下本地:

     

$ scope - 与元素

关联的当前范围      

$ element - 当前元素

     

$ attrs - 元素的当前属性对象

     

$ transclude - 预先绑定到正确的转换范围的转换链接函数

答案 1 :(得分:-1)

在HTML中

<%= link_to "All Movies", movies_path %>
<%= link_to "Movies sorted alphabetially", movies_path(sort_by: "title") %>

在控制器

<input type="checkbox" ng-model="msngModel" ng-change='saveChanges(msngModel)' ng-true-value="'YES'" ng-false-value="'NO'">