我试图为此指令添加额外的ng-change事件属性:
angular.module('uiSwitch', [])
.directive('switch', function(){
return {
restrict: 'AE'
, replace: true
, transclude: true
, template: function(element, attrs) {
var html = '';
html += '<span';
html += ' class="switch' + (attrs.class ? ' ' + attrs.class : '') + '"';
html += attrs.ngModel ? ' ng-click="' + attrs.ngModel + '=!' + attrs.ngModel + '"' : '';
html += ' ng-class="{ checked:' + attrs.ngModel + ' }"';
html += '>';
html += '<small></small>';
html += '<input type="checkbox"';
html += attrs.id ? ' id="' + attrs.id + '"' : '';
html += attrs.name ? ' name="' + attrs.name + '"' : '';
html += attrs.ngModel ? ' ng-model="' + attrs.ngModel + '"' : '';
html += attrs.ngChange ? ' ng-change="' + attrs.ngChange + '"' : '';
html += ' style="display:none" />';
html += '</span>';
return html;
}
}
})
我添加了以下行:
html += attrs.ngChange ? ' ng-change="' + attrs.ngChange + '"' : '';
但是当我在实现指令时传递一个要调用的函数时,没有任何反应。我做错了什么?
<switch id="question" name="question" ng-model="questionAnswered" ng-chnage="myFunction()" class="green"></switch>
答案 0 :(得分:4)
您必须传递函数的名称,而不是()
调用它,如下所示:
<switch id="question" name="question" ng-model="questionAnswered" ng-change="myFunction" class="green"></switch>