Qu'est-ce qui est défini dans scope
et attrs
variable là-bas? Comment voir ce qu'il y a?Qu'est-ce qu'il y a dans la portée, et attrs les variables/objets?
De même, comment utiliser la variable scope
pour écrire dans les champs ID
et scopeID
?
De même, pourquoi alert(scope.$id);
continue de pointer sur 001? Je n'ai pas 2 applications? Au moins 2 entités distinctes?
<script>
var firstApp = angular.module('firstApp', []);
firstApp.directive('myFirstApp', function() {
var variable = function(scope, element, attrs) {
alert(scope.$id);
$.each(elemArray, function(scope) {
$(this).on('click', function(scope) {
var id = $(this).attr("id");
scope.ID = $(this).attr("id");; // how to write to ID field here
alert($(this).attr("id"););
});
});
};
return {
restrict: 'AEC',
link: variable
};
});
</script>
<my-first-app>
<button id="a1">button 1</button>
<button id="a2">button 2</button>
<br />My ID: {{ ID }}
<br />My Scope ID: {{ scopeID }}
</my-first-app>
<br />
<my-first-app>
<button id="b1">button 1</button>
<button id="b2">button 2</button>
<br />My ID: {{ ID }}
<br />My Scope ID: {{ scopeID }}
</my-first-app>
Il y a un plugin nommé chrome AngularJS, avec elle, vous pouvez voir ce qui est portée. – worldask
La portée est héritée, sauf indication contraire. Les deux applications héritent donc de la même portée parent. Si vous voulez que chaque directive ait sa propre portée enfant, ajoutez "scope: true" à votre définition de directive – pixelbits