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后,它运行良好。谢谢~!