禁用所有输入和表单的编辑

时间:2016-03-10 10:47:06

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

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

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

或按钮

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

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

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

2 个答案:

答案 0 :(得分:2)

我会说在disable元素中包含您想要fieldset的所有字段,&amp;然后在ng-disabled="readOnly"上只有fieldsset指令,这样一旦disabled值变为真,所有内部字段都将获得readonly,通过该值,您的所有代码变得更清晰。

<强>标记

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

Sample Demo

答案 1 :(得分:0)

<强>尊敬的

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

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