我对Angular很新,我正在尝试打包收音机输入:
<input type="radio" ng-model="animal" name="fun" value="dog" radio />
<input type="radio" ng-model="animal" name="fun" value="cat" radio />
根据无线电的值是否等于模型(选择单选按钮),有条件地将指令中的类应用于包装元素
http://jsfiddle.net/TSM_mac/HB7LU/141/
.directive('radio', function() {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
elem.wrap('<div class="radio-wrap" ng-class="checked:attrs.value==attrs.ngModel}"></div>');
}
}
})
我考虑过使用模板属性,然后用模板包装元素。我也考虑过使用$ compile。
感谢任何建议
答案 0 :(得分:1)
首先,ng-class="checked:attrs.value==attrs.ngModel}"
应为ng-class="{checked:attrs.value==attrs.ngModel}"
其次,你的表达毫无意义。在摘要周期中,您的视图会评估ng-class
。在link
函数调用期间,不会在您的指令中对其进行评估。因此,当评估ng-class时,将不会有attrs
变量,当然,它将评估为false。