我想访问 ngModel 控制器(稍后使用 setValidity 来验证自定义输入字段)。但是,当我想将该指令用作属性(而不是类)时,replaceWith 函数会抛出一个错误,即找不到 ngModel 控制器。我在这里创建了一个小提琴:
jsfiddle.net/6HcGS/396
有人可以帮帮我吗?
这与我的第一个问题有关:
我想访问 ngModel 控制器(稍后使用 setValidity 来验证自定义输入字段)。但是,当我想将该指令用作属性(而不是类)时,replaceWith 函数会抛出一个错误,即找不到 ngModel 控制器。我在这里创建了一个小提琴:
jsfiddle.net/6HcGS/396
有人可以帮帮我吗?
这与我的第一个问题有关:
<input zippy ng-model="title">
zippy 和 ngModel 都是以特定顺序呈现的指令。在这种情况下,zippy 在 ngModel 之前被渲染。您可以像 Maxim Shoustin 建议的那样重新排序指令,也可以通过priority
在指令创建函数上提供一个属性来指定渲染顺序,如下所示:
.directive('zippy', function($compile){
return {
restrict: 'A',
priority: -1,
replace: true,
...
默认优先级为 0。优先级较高的指令首先呈现。
反而
<input zippy ng-model="title"/>
尝试在ng-model
喜欢之后写属性:
<input ng-model="title" zippy/>
在指令zippy
之前加载你很有趣。ng-model
就像 bekite 说的,设置priority: -1
演示Fiddle