Angular的ng-model控制器对属性是正确的,但对元素却不行
Angular ng-model controller work correct for attribute but for element dont
我有这样的HTML代码:
<div ng-repeat="(name, input) in loginCtrl.loginModel">
<input type="{{input.type}}" name="{{name}}" ng-model="input.model" placeholder="{{name | translate}}" ng-minlength="5" input-status required/>
<!-- <input-status ng-model="input.model"></input-status> -->
</div>
输入状态代码如下:
.directive('inputStatus', function() {
return {
restrict: 'AE',
templateUrl: 'templates/inputStatus2.html',
require: 'ngModel',
link: function($scope, element, attrs, ctrl) {
ctrl.$parsers.push(function(viewVal) {
ctrl.$validate();
console.log(viewVal);
});
}
}
});
当我在link函数中添加模型控制器的属性代码时,每次模型更改都会执行link函数,但当我删除该属性并取消注释代码时,每次更改input.model后都不会执行模型控制器解析器函数。为什么?如何解决这个问题?
你不能从input标签中删除directive属性,取消对directive元素的注释,并假装该指令会像附加在input标签上一样工作。
当你处理指令作为属性时,你已经有了你需要的html:它是标签本身,在你的例子中的输入标签。
使用directive作为元素,你必须创建要在视图中呈现的元素,附加一个模板,该模板将有一个主HTML节点:一个根元素,在本例中是一个输入标签。
相关文章:
- 从角度控制器访问模板元素
- 2个不同的控制器:在其中一个控制器的动作上隐藏元素
- AJAX只将数组的最后一个元素传递给MVC 5控制器
- AngularJS:如何从控制器切换元素
- 如何在javascript中处理html数组元素,并使用ajax将它们传递给控制器
- 如何在Angular中使用控制器来定位html元素
- AngularJs控制器从模板中添加所有html元素
- 通过 ID 获取元素,为 Sencha 控制器返回 null
- 如何通过不同的视图/控制器在特定元素上设置 ng-show
- 控制器和指令请求同一元素上的隔离范围
- 未在选择标记下拉列表中选择以隐藏其他输入元素的嵌套控制器
- 在同一元素上使用“控制器作为 x”的多个 ng 控制器指令
- 聚合物和角度:尝试将数据从控制器传递到元素失败
- 如何从控制器获取表示 ngRepeat 中元素的 HTML 节点的参数
- 如何将 html 元素值提交到其在 Kohana 中的相应控制器
- 控制器视图上下文中的 dom 元素
- AngularJS:在指令中将元素链接到控制器
- 将 javascript 动态添加的元素提交到控制器方法,如 Stackoverflow
- 通过父控制器 AngularJS 设置指令元素属性
- AngularJS:如何判断我的控制器是否绑定到我的ng-repeat指令元素?我的数据没有显示