在define指令中使用变量虽然属性与范围有什么区别?例如 -
angular.module('tModule')
.directive('tModule', function() {
return {
restrict: 'E',
scope: true,
templateUrl: function(element, attributes) {
return attributes.variable1;
}
}
});
与我使用范围相比。如下 -
angular.module('tModule')
.directive('tModule', function() {
return {
restrict: 'E',
scope: {
variable1: "=variable1",
variable2: "=variable2"
},
templateUrl: function() {
return variable1;
}
}
});
有什么区别和优点?
答案 0 :(得分:4)
根据您的示例存在一些差异:
在上面的示例中,指定scope: true
表示创建父作用域的新实例。在底部示例中,使用对象语法意味着创建隔离范围。因此,当您使用范围语法将参数传递给指令时,您本身就会为该指令创建一个独立的范围。
如果您想利用双向数据绑定(=)或方法调用(&),那么您需要使用第二种方法来传递范围而不是属性。