【问题标题】:How to prevent AngularJs from setting model value to null when element is hidden?隐藏元素时如何防止AngularJs将模型值设置为null?
【发布时间】:2020-02-13 15:05:37
【问题描述】:
<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,并且随着这个&lt;select&gt;被隐藏,@987654325 @ 设置为 null。然后,如果用户再次点击Edit,这个&lt;select&gt; 会重新生成,但其中没有任何内容被选中,尽管数据已正确保存。理想情况下,&lt;select&gt; 应该显示保存的值。如何解决这个问题?

【问题讨论】:

  • 这个问题没有足够的信息来重现问题。它需要saveedit 按钮的代码。 ng-show 指令不会破坏 DOM 节点。它只改变 CSS 类。

标签: angularjs


【解决方案1】:

我认为您做出了一些不正确的假设。 ng-show 在隐藏元素时不会删除模型值,正如这个 plunker 证明的那样:https://plnkr.co/edit/knnLRZcHdQukGawU8iyJ?p=preview

ng-show/ng-hide 不会重新生成 DOM 元素,它们只是更改可见性属性

【讨论】:

    猜你喜欢
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    相关资源
    最近更新 更多