使用controllerAs的指令中的angularjs控制器无法工作?

时间:2013-09-21 10:45:07

标签: javascript angularjs

我正在尝试将一些数据放在我的指令创建的范围内。这是我的jsFiddle

以下代码效果很好

.directive('directive1', function () {
    return: {
        scope: true,
        controller: function ($scope) {
            $scope.name = 'world';
        }
    }
})

<div directive1>
    <p>{{ name }}</p>
</div>

但这些代码不起作用

.directive('directive2', function () {
    return: {
        scope: true,
        controller: function () {
            this.name = 'world';
        },
        controllerAs: 'testCtrl'
    }
})

<div directive2>
    <p>{{ testCtrl.name }}</p>
</div>

我的代码有什么问题吗?还是我误解了controllerAs的某些内容?

2 个答案:

答案 0 :(得分:16)

ControllerAs支持指令was added in 1.2.0,因此您必须使用最新版本,而不是来自链接小提琴的1.0.2This way它的效果与你想要的一样。

答案 1 :(得分:-1)

请不要与指令控制器和普通控制器混淆!所以,是的,一个直升机可以有一个控制器,控制一些东西。但它不等同于普通控制器!

将指令逻辑放入指令控制器实际上没有问题,但指令控制器实际上用于交叉指令通信。一个指令的控制器实例可以注入到另一个指令中,该指令位于同一个元素(或子元素)上。

“controller as”表达式适用于普通控制器。所以,只需自己帮忙,把你的逻辑放入指令链接功能。