0

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

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

或按钮

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

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

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

4

2 回答 2

2

我想说的是,将你想要的所有字段包装disable在一个fieldset元素中,然后只需在ng-disabled="readOnly"上有指令fieldsset,这样所有内部字段都会得到disabled一次readonly值,这样你的所有代码就会变得更干净。

标记

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

示例演示

于 2016-03-10T10:53:31.670 回答
0

亲爱的,

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

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

感谢和干杯

于 2016-03-10T10:55:28.297 回答