Javascript Can';当指令中定义了作用域:{}时,在控制器中绑定$scope
当我在指令的控制器中绑定一个Javascript Can';当指令中定义了作用域:{}时,在控制器中绑定$scope,javascript,angularjs,Javascript,Angularjs,当我在指令的控制器中绑定一个$scope而不在指令设置中使用scope:{}时,它会工作 但是我需要scope:{}来获取指令中定义的变量 这是我的测试代码: var app = angular.module("app", []); app.directive("directive", function () { return { controller: function($scope){ $scope.id = 5; } } }); app.direct
$scope
而不在指令设置中使用scope:{}
时,它会工作
但是我需要scope:{}
来获取指令中定义的变量
这是我的测试代码:
var app = angular.module("app", []);
app.directive("directive", function () {
return {
controller: function($scope){
$scope.id = 5;
}
}
});
app.directive("childDirective", function () {
return {
scope: {
id: "=user"
},
controller: function($scope){
$scope.hello = "Hello";
}
}
})
-
{{你好}}
当我删除作用域:{id:'=user}
时,它会工作。但我需要将id传递给控制器
有解决办法吗
提前感谢。当您使用隔离作用域时,它仅在为指令提供的模板上有效。您可以以字符串或
templateUrl
试着这样做:
<directive>
<child-directive user="id"></child-directive>
</directive>
如果我想定制模板,我应该使用控制器吗?我不确定你在问什么。请按指示阅读
隔离范围
,全部正确!您的解决方案有效,因此我会将答案标记为已接受。我将阅读指令中的隔离作用域。谢谢
<directive>
<child-directive user="id"></child-directive>
</directive>
app.directive("childDirective", function () {
return {
scope: {
id: "=user"
},
template:'{{ hello }} ID= {{id}}',
controller: function($scope){
$scope.hello = "Hello";
}
}
})