Angularjs Angular.js:数据绑定不使用控制器选项

Angularjs Angular.js:数据绑定不使用控制器选项,angularjs,data-binding,angularjs-directive,angularjs-controller,Angularjs,Data Binding,Angularjs Directive,Angularjs Controller,当我在控制器选项中指定控制器时,为什么angular的数据绑定不起作用$scope.emailInvalid.text通常应该映射到type.text,但在我的例子中,没有显示get JS: 指令('alert',函数(){ 返回{ 模板:“{type.text}}”, 限制:'E', 范围:{ 类型:'=' }, 控制器:功能($scope){ $scope.emailInvalid={ 文本:“文本警报二” }; } }; }); HTML: 由于要显示type.text,因此需要定义 $

当我在控制器选项中指定控制器时,为什么angular的数据绑定不起作用
$scope.emailInvalid.text
通常应该映射到
type.text
,但在我的例子中,没有显示get

JS:

指令('alert',函数(){ 返回{ 模板:“{type.text}}”, 限制:'E', 范围:{ 类型:'=' }, 控制器:功能($scope){ $scope.emailInvalid={ 文本:“文本警报二” }; } }; }); HTML:


由于要显示
type.text
,因此需要定义

$scope.type = {
    text: 'Text Alert Two'
};
在指令控制器中。通过这样做,您不必将对象传递给指令


好的,我找到了一个解决方案:


问题是angular无法将
$scope.emailInvalid
映射到
$scope.type
。我在示例中使用

所做的是,在我的示例中,将对象传递到指令非常重要,因为在我的应用程序中会有多种类型的警报,它们都使用相同的标记-只是使用不同的文本。我想通过将类型定义为属性来指定要使用的文本。请参阅我的更新。我觉得奇怪的是,我的示例中的两个控制器基本上是相同的,但是通过使用directives controller选项在指令内部定义一个控制器,使用
作用域:{type:'='}
的数据绑定将不起作用。
<alert type="emailInvalid"></alert>
$scope.type = {
    text: 'Text Alert Two'
};