Javascript 指令中使用controllerAs的angularjs控制器无法工作?
我试图在指令创建的范围内放置一些数据。这是我的名片 下面的代码运行良好Javascript 指令中使用controllerAs的angularjs控制器无法工作?,javascript,angularjs,Javascript,Angularjs,我试图在指令创建的范围内放置一些数据。这是我的名片 下面的代码运行良好 .directive('directive1', function () { return: { scope: true, controller: function ($scope) { $scope.name = 'world'; } } }) <div directive1> <p>{{ name }
.directive('directive1', function () {
return: {
scope: true,
controller: function ($scope) {
$scope.name = 'world';
}
}
})
<div directive1>
<p>{{ name }}</p>
</div>
.directive('directive1',function(){
返回:{
范围:正确,
控制器:功能($scope){
$scope.name='world';
}
}
})
{{name}}
但这些代码不起作用
.directive('directive2', function () {
return: {
scope: true,
controller: function () {
this.name = 'world';
},
controllerAs: 'testCtrl'
}
})
<div directive2>
<p>{{ testCtrl.name }}</p>
</div>
.directive('directive2',函数(){
返回:{
范围:正确,
控制器:函数(){
this.name='world';
},
controllerAs:'testCtrl'
}
})
{{testCtrl.name}
我的代码有什么错误吗?还是我误解了controllerAs对指令的支持,所以您必须使用最新版本,而不是linked fiddle中的
1.0.2
。它的工作原理与您想要的一样。请不要混淆指令控制器和普通控制器!是的,一个directve可以有一个控制器,它可以控制一些东西。但它并不等同于一个普通的控制器
将指令逻辑放入指令控制器实际上没有问题,但指令控制器实际上用于跨指令通信。一个指令的控制器实例可以注入位于同一元素(或子元素)上的另一个指令
“控制器为”表达式适用于普通控制器。所以,帮自己一个忙,把逻辑放在指令链接函数中。我不知道你是否能做到这一点。您定义的控制器没有
$scope
。什么是controllerAs
?@MaximShoustin,一个新的定向功能感谢控制器的细节!实际上,我混淆了普通控制器和指令控制器。再次感谢!这个答案是误导性的-指令控制器与普通控制器相同,只是它不是由ngController
指令实例化,而是由与之关联的指令实例化。它的工作原理是一样的,注射剂,controllerAs
,一切。逻辑可以/应该放在指令的控制器中-link函数应该主要用于DOM操作。你是对的。迁移到angular 1.2后,它运行良好。谢谢~!