0
我正在学习AngularJS中的指令,并发现在几个示例中,添加一个隔离范围(@,=或&)。它们有时不仅添加了隔离范围,还添加了后面的ngModel名称。即:“@name”而不是“@”。孤立范围+绑定名称和孤立范围之间的区别仅在AngularJS
所以,有什么区别:
myApp.directive('zippy', function() {
return {
restrict: "E",
transclude: true,
replace: true,
scope: {
name: "@" // <----
},
template: "<div>{{name}}<div ng-transclude></div></div>",
link: function(scope, element, attrs) {
console.log(scope.name);
}
}
});
而且这样的:
myApp.directive('zippy', function() {
return {
restrict: "E",
transclude: true,
replace: true,
scope: {
name: "@name" // <----
},
template: "<div>{{name}}<div ng-transclude></div></div>",
link: function(scope, element, attrs) {
console.log(scope.name);
}
}
});
Ohhhh我知道了...让我改述一下,如果不是名称,我在范围中获得了“customerName”,那么我应该把范围:{customerName:'@name'},对不对?但由于scope属性与html“name”中的指令完全相同,所以我不需要添加“@name”,我可以直接使用“@”:) – user3078876