问题描述
我有一个简单的表行。
行由低于code产生的。
The row is generated by below code.
<tr ng-init="cacheChanged">
<td>Expiration Period</td>
<td ng-repeat="system in tableData.regions[0].systems">
<input type="text" ng-model="system.cacheDuration" ng-change="cacheChanged=true">
<span>h</span>
</td>
<td>
<button type="button" ng-click="saveCache()" ng-disabled="!cacheChanged">Save</button>
</td>
</tr>
在任何改变的四个值,保存按钮应该被启用。但是,它仍然被禁用所有的时间。任何人都知道这是为什么?在此先感谢!
When any of the four values changed, the save button is supposed to be enabled. However, it is still disabled all the time. Anyone knows why? Thanks in advance!
推荐答案
在你的情况,你应该使用 $ parent.cacheChanged
而不是 cacheChanged
变量。由于 NG-重复
确实为每个循环创建子范围,同时呈现DOM。总之 NG-重复
中的 cacheChanged
变量是不一样的 cacheChanged 的code>在
按钮
使用那里。
In your case you should use $parent.cacheChanged
instead of cacheChanged
variable. As ng-repeat
does create child scope for each loop while rendering DOM. In short the cacheChanged
variable inside ng-repeat
is not same as that of cacheChanged
used there on button
.
标记
<td ng-repeat="system in tableData.regions[0].systems">
<input type="text" ng-model="system.cacheDuration" ng-change="$parent.cacheChanged=true">
<span>h</span>
</td>
有更好的方式来为它去将使用点规则
在定义 NG-模型
,看这方面的详细。
There is better way to go for it will be using Dot rule
while defining ng-model
, look at this detailed answer here.
这篇关于NG-改变并不吴重复生成的表行工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!