【问题标题】:Disable edit on all the inputs and forms禁用对所有输入和表单的编辑
【发布时间】:2016-06-25 03:58:18
【问题描述】:

我正在开发一个用于项目管理的应用程序,第一个界面旨在从列表中选择一个项目,其他界面用于显示编辑添加...所选项目的不同类型的信息。 我们的项目有一个变量来定义项目是可编辑的还是只读的;我的问题是根据这个变量禁用所有不同接口中的所有输入的最佳方法是什么? 我可以将此变量存储在本地存储中并添加到每个输入中,如下所示:

<input ng-class="{disable: readOnly === true}" type="text"....>

或按钮

<button ng-hide="readOnly">Submit</button>

但我认为这是一种丑陋的做法,首先因为我们使用的是具有本地存储的全局变量,特别是因为我们一开始并没有预料到这个功能,所以使用上面的这种方法,我应该向所有输入添加代码,按钮、复选框、....

在这种情况下,我们是否有不使用本地存储的最佳做法?

【问题讨论】:

    标签: javascript angularjs local-storage angular-local-storage


    【解决方案1】:

    我想说的是,将您想要 disable 的所有字段包装在 fieldset 元素中,然后在 fieldsset 上添加 ng-disabled="readOnly" 指令,这样所有内部字段都会得到 @987654326 @ once 是 readonly 值变为 true,这样你的所有代码都会变得更干净。

    标记

    <fieldset ng-disabled="readonly">
       ...All fields & button here..
    </fieldset>
    

    Sample Demo

    【讨论】:

      【解决方案2】:

      亲爱的

      我认为使用本地存储或会话存储也不是最佳做法。因此,您应该采取另一种方法。虽然你的问题不是很清楚,但我仍然会给你几个场景来解决它。

      1. 您可以使用 $rootscope
      2. 您可以使用工厂或服务将数据从一个控制器传递到另一个

      感谢和欢呼

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-03
        • 1970-01-01
        • 2019-06-01
        • 1970-01-01
        • 2014-12-09
        • 2018-01-29
        相关资源
        最近更新 更多