angularjs指令链接函数未绑定来自控制器的数据
我有一个指令,它在link函数的元素参数上使用jquery事件,该指令有一个绑定到从页面主控制器获得的值的输入,该值通过隔离范围中的嵌套指令传递,但当更改输入中的值时,该值不会反映在控制器的原始对象中 对象具有以下结构: 发票1: -产品1 -产品2 发票2: -产品3 -产品4 当我更改发票金额时,主控制器中的值会更新,但当我更改产品金额时,更改不会反映出来 这是我的指令,您应该做的是,当用户单击值时,输入似乎能够编辑模型的值: eFieldTemplate.htmlangularjs指令链接函数未绑定来自控制器的数据,angularjs,Angularjs,我有一个指令,它在link函数的元素参数上使用jquery事件,该指令有一个绑定到从页面主控制器获得的值的输入,该值通过隔离范围中的嵌套指令传递,但当更改输入中的值时,该值不会反映在控制器的原始对象中 对象具有以下结构: 发票1: -产品1 -产品2 发票2: -产品3 -产品4 当我更改发票金额时,主控制器中的值会更新,但当我更改产品金额时,更改不会反映出来 这是我的指令,您应该做的是,当用户单击值时,输入似乎能够编辑模型的值: eFieldTemplate.html <div>
<div>
<div ng-if="IsMouseIn">
<input type="text" ng-model="value" class="form-control input-sm" />
</div>
<div ng-if="IsMouseOut" ng-click="OnMouseClick()">
{{value}}
</div>
<div ng-if="MouseClick">
<input type="text" ng-model="value" class="form-control input-sm" />
</div>
有什么建议吗
我举一个例子:
已更新
我发现了一个使用ngIf的解决方案,就是使用$parent.value引用父范围中的变量。例如
<Input type="text" ng-model="$parent.value" class="form-control input-sm" />
或者也指另一个物体,例如
<input type="text" ng-model="value">
<div ng-if="IsMouseIn">
<input type="text" ng-model="value">
</div>
这里是参考链接:使用ng if会创建/销毁新的html节点,而它似乎无法处理这一问题。更改为ng show,它将起作用。我还添加了一个鼠标体捕捉,以结束编辑
<div>
<div ng-show="IsMouseIn">
<input type="text" ng-model="value" class="form-control input-sm" />
</div>
<div ng-show="IsMouseOut" ng-click="OnMouseClick()">
{{value}}
</div>
<div ng-show="MouseClick">
<input type="text" ng-model="value" class="form-control input-sm" />
</div>
{{value}}
如果要使用ng If not ng show still,请定义
$scope.values
和$scope.config
并像这样使用。为了避免ng if问题,您应该定义一个对象
<div>
<div ng-if="config.IsMouseIn">
<input type="text" ng-model="values.value" class="form-control input-sm" />
</div>
<div ng-if="config.IsMouseOut" ng-click="OnMouseClick()">
{{values.value}}
</div>
<div ng-if="config.MouseClick">
<input type="text" ng-model="values.value" class="form-control input-sm" />
</div>
{{values.value}}
根本看不到问题中的代码与您描述的问题相匹配非常感谢!工作完美!!有没有办法继续使用ng if?现在,在显示/隐藏指令的每个元素时会出现闪烁,这会使每一行在移动HTML元素时变大一小部分。也许您可以尝试只使用一个输入字段,并使用ng类/样式来改换其外观。我想,即使从性能的角度来看,它也更有意义,因为在摘要周期中添加的查找更少。
<div>
<div ng-if="config.IsMouseIn">
<input type="text" ng-model="values.value" class="form-control input-sm" />
</div>
<div ng-if="config.IsMouseOut" ng-click="OnMouseClick()">
{{values.value}}
</div>
<div ng-if="config.MouseClick">
<input type="text" ng-model="values.value" class="form-control input-sm" />
</div>