Różnice zakresu AngularJS między 1.0.x a 1.2.x
Począwszy od wydania następnego stabilnego AngularJS, przeprowadzam migrację mojej aplikacji z wersji1.0.8 do1.2.
W AngularJS1.0.8 możliwe było stworzenie izolowanego zakresu dla dyrektyw takich jakfollow
. Dyrektywa użyłaby wtedy własnejtest()
funkcja zamiast kontroleratest()
funkcjonować.
<my-dialog property="something">
<button ng-click="test()">Load Test</button>
Check out the test: "{{ testMessage }}"
</my-dialog>
Javascript .controller('Ctrl', function(scope) {
scope.test = function () {
scope.testMessage = 'CTRL Test loaded! Whooops.';
}
})
.directive('myDialog', function() {
return {
restrict: 'E',
scope: {
property: '='
},
link: function(scope) {
scope.test = function () {
scope.testMessage = 'Isolated Test loaded. Yes!';
}
}
};
W AngularJS1.2 to zachowanie już nie działa. Kliknięcie przycisku uruchamia kontrolertest()
funkcja teraz.
Zobacz porównanie jsFiddle:
Kątowy 1.0.8Angular 1.2.0Co dokładnie ma zmiany i jak mogę odtworzyć stare zachowanie?
UwagaPomyślałem, że mogę umieścić szablon dyrektyw w dodatkowym pliku HTML lub skompilować go jako ciąg znaków, aby działał (jsFiddle), ale wydaje się, że w moim przypadku jest zbyt wiele, ponieważ szablon jest naprawiony, a podział HTML na kilka częściowych plików HTML jest kłopotliwy.
EDYTOWAĆOdpowiedź @ elclanr działa dobrze, gdy nie ma innych właściwości do udostępnienia. zaktualizowałemthe jsFiddle przekazać jakąś dowolną własność. Jak mam teraz kontynuować?