0

似乎每个人都在 angularjs 谷歌组上睡着了 :)

这是我的问题:

我在指令中有一个选择,我想将一个函数绑定到该选择的“更改”事件。我的问题是,当我在 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 !");
        });

      };

    }
  }; 

});
4

1 回答 1

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 !");
            });
        }
    }
});

演示:小提琴

于 2013-08-31T11:02:23.643 回答