爲什麼當我在指令控制器選項中指定控制器時,角度數據綁定不起作用? $scope.emailInvalid.text
通常應映射到type.text
但在我的情況下,沒有得到顯示。Angular.js:數據綁定與指令控制器選項不起作用
JS:
.directive('alert', function() {
return {
template: '<div>{{type.text}}</div>',
restrict: 'E',
scope: {
type: '='
},
controller: function ($scope) {
$scope.emailInvalid = {
text: 'Text Alert Two'
};
}
};
});
HTML:
<alert type="emailInvalid"></alert>
當我定義了一個單獨的控制器,並與ng-controller
在HTML通過它,一切工作像預期。
這是plunker。
在我的情況下,它的對象傳遞到指令是很重要的,因爲會有多種類型在我的應用程序的警報,所有使用相同的標記 - 只是用不同的文字。我想通過將類型定義爲屬性來指定要使用的文本。看到我更新的[plunker](http://plnkr.co/edit/U4qvd8oK6hGj07A6VvBC?p=preview)。我覺得奇怪的是,在我的示例中,兩個控制器基本上是相同的,但通過使用指令控制器選項在指令內定義一個控制器,使用'scope:{type:'='}'的數據綁定不會工作。 – dorthrithil 2015-03-03 14:50:50