2016-03-20 10 views
-1

ng-change, ng-click funktioniert nicht auf nur in Direktive auswählen kann mir jemand helfen?ng-change funktioniert nicht in meiner Direktive auswählen

HTML

Richtlinie:

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

});

Controller:

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

});

ich bin der Neuling hier. Eckige Version 1.3 Vielleicht hängt es von der Version ab. Ich kann Version jetzt nicht ändern

+0

Können Sie bitte das Problem ein wenig besser erklären. Auf den ersten Blick fügen Sie ng-change dynamisch im Anweisungscode hinzu. Es kann nicht so gebunden sein. – Milan

+0

Wie kann ich Änderungen dynamisch hinzufügen? –

Antwort

0

Sie müssen $ compile-Funktion verwenden, wenn Sie Elemente mit eckigen Bindungen einfügen. Habe das nicht getestet, aber es ist die richtige Richtung.

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

ok. es funktioniert nicht , aber ich werde die Lösung suchen –

Verwandte Themen