angularjs - 隐藏元素时如何防止AngularJs将模型值设置为null?
问题描述
<select ng-model="model.typeId" ng-show="AllowToChangeType(model)"
ng-options="item.value as item.text for item in model.types">
</select>
问题是,当用户单击Save按钮时,表单会重新生成为不可编辑模式,AllowToChangeType()
返回false
,并且当它<select>
隐藏时,model.typeId
设置为null
. 然后,如果用户Edit再次点击,它<select>
会重新生成,但其中没有任何选择,尽管数据已正确保存。理想情况下,<select>
应该显示保存的值。如何解决这个问题?
解决方案
我认为你做出了一些不正确的假设。ng-show
隐藏元素时不会删除模型值,正如这个 plunker 证明的那样:https ://plnkr.co/edit/knnLRZcHdQuukGawU8iyJ?p=preview
ng-show
/ng-hide
不重新生成 DOM 元素,它们只是改变可见性属性
推荐阅读
- c# - 在已发布的应用程序中上传到 Blob 存储时出现 IOException
- java - 如何从java中的oject引用中获取价值
- linux - 如何在 Linux 上以发布模式构建 HIDAPI 库?
- apache-spark - 如何在 spark-shell 上使用 createDataFrame 和 createDF
- r - 在 dplyr 动词右侧取消引用变量名的最佳实践
- c# - ASP .NET Core Identity 自定义 ApiAuthorizationDbContext
- shiny - 来自networkD3的sankeyNetworkOutput的反应高度
- spring - 弹簧形式:输入不为空
- firebase - 如何在 Firebase cloudFunctions 的快速服务器中的 res.send() 之后执行代码
- arrays - 从 json 数组中检索值,其中属性等于 Ansible 的变量