javascript - 如何强制更新 ng-init ?
问题描述
我发现更新 rowIndex 后 ng-init 没有更新。
<div ng-init="item = getItem(rowIndex)">
{{ item.Name }}
</div>
更改 rowIndex 后项目不会更新(即使使用 $timeout 进行更改)
是否有其他指令可以避免使用以下肮脏技巧:
<div ng-repeat="item in [getItem(rowIndex)]">
{{ item.Name }}
</div>
解决方案
另一种方法是在虚假属性中设置变量:
<div x="{{item = getItem(rowIndex)}}">
{{ item.Name }} {{item.Value}}
</div>
在每个摘要周期中,item
都会更新 的值。
在这种情况下,如果item
具有多个属性,则该getItem
函数只需要调用一次。
item
请记住,控制器在更改时仅更新一次的值而不是在每个摘要周期rowIndex
调用函数会更有效。getItem
避免使用ng-init
避免使用ng-init
. 它将模型和视图纠缠在一起,使代码难以理解、测试、调试和维护。而是在控制器中初始化模型。
从文档:
初始化
可以滥用该指令在模板中添加不必要的逻辑量。仅适用于少数几个用途
ngInit
,例如为 的特殊属性起别名ngRepeat
,如下面的演示所示;以及通过服务器端脚本注入数据。除了这几种情况,您应该使用控制器而不是ngInit
在作用域上初始化值。
推荐阅读
- php - 调用未定义函数,更改 helper.php 文件但仍无法调用 presentPrice 函数
- selenium - 量角器工具的 webdriver-manager 启动期间 Selenium Standalone 服务器错误
- c - 多空间是确定性的吗?
- go - 生成可以返回所有可能值的均匀随机浮点数
- javascript - 服务器响应随机不同,这使得 Json.Parse 失败
- c# - 如何允许所有后续线程继续通过“门”
- windows - 无法确定 VC14 目录
- angular - 收集用户keyevent输入2秒然后清除它
- python - Python中的Dulmage-Mendelsohn矩阵分解
- java - 在 Java 6 上验证回历日期(伊斯兰日历)