似乎每个人都在angularjs google群上睡着了:)
这是我的问题:
我在指令中有一个select,我想将一个函数绑定到该select的'change'事件。 我的问题是,当我在ng-repeat循环中使用这个指令时,对事件的绑定不再起作用了(为什么??)。
修改
在我的实际情况中,有三个或更多<select>
,使用json文件中的数据创建和填充。
以下是该指令的简化版本,我也提出了plunker。
angular.module('test', [])
.directive('mySelect', function() {
var baseElt = angular.element('<select><option>1</option><option>2</option></select>');
return {
restrict: 'E',
compile: function(topElement) {
var elt = baseElt.clone();
topElement.append(elt);
return function(scope, element, attributes, ngModelCtrl) {
elt.bind('change', function() {
alert("change !");
});
};
}
};
});
答案 0 :(得分:2)
你需要
app.directive('mySelect', function() {
return {
restrict : 'E',
template : '<select><option>1</option><option>2</option></select>',
link : function(scope, element, attributes, ngModelCtrl) {
element.bind('change', function() {
console.log("change !");
});
}
}
});
演示:Fiddle