2016-03-20 2 views
-1

ng-change, ng-click не работает над выбором только в директиве Может ли кто-нибудь мне помочь?ng-change не работает над выбором в моей директиве

HTML

директива:

myApp.directive("selectList", function(){ 
return function (scope, element, attr) { 
    var data = scope.items; 
    if(angular.isArray(data)){ 
     var selectElem = angular.element("<select>").attr('ng-change', 'test()'); 
     element.append(selectElem); 
     for(var i = 0; i < data.length; i++){ 
      var optionElem = angular.element("<option>"); 
      selectElem.append(optionElem.text(data[i].name)); 
     } 
    } 
} 

});

Контроллер:

var myApp=angular.module('myApp', []); 
myApp.controller('phoneController', function($scope) { 

$scope.items = [ 
    { name: 'Nokia Lumia 630' 
    }, 
    { name: 'Xiaomi Mi5' 
    } 
]; 

$scope.selectedItem = $scope.items[0].name; 

$scope.select = function(name){ 
    $scope.selectedItem = name; 
}; 
$scope.test = function(){ 
    alert("test"); 
}; 

});

im новичок здесь. Угловая версия 1.3 Возможно, это зависит от версии. Я не могу изменить версию сейчас

+0

Не могли бы вы объяснить проблему немного лучше. На первый взгляд вы добавляете ng-change динамически в код директивы. Это не может быть связано именно так. – Milan

+0

Как я могу добавить динамическое изменение ng? –

ответ

0

вам нужно использовать функцию компиляции $, если вы вставляете элементы с угловыми привязками. Не проверял это, но это правильное направление.

myApp.directive("selectList", function ($compile) { 
    function link(scope, element, attr) { 
     var data = scope.items; 
     if (angular.isArray(data)) { 
      var selectElem = $compile('<select ng-change="text()"></select>'); 
      element.append(selectElem); 
      for (var i = 0; i < data.length; i++) { 
       var optionElem = angular.element("<option>"); 
       selectElem.append(optionElem.text(data[i].name)); 
      } 
     } 
    } 

    return { 
     link: link 
    }; 
}); 
+0

ОК. его не работает , но я буду искать решение –

Смежные вопросы