是否可以在 angular 中保护既可以是只读也可以不是只读的输入?

Is it possible to secure an input that can be both readonly or not in angular?

简介

我在表单中有输入,其中变量分配给 ng-model 属性。 有几个具有不同操作的按钮可以最终提交具有不同结果的表单。出于这个原因,我添加了 novalidate 属性。

下面是代码示例:

<form ng-submit="submitFunc()" novalidate>
  <input type="text" ng-model="good.category" ng-readonly="good.id"/>
  ...
  <button ng-click="action1()" ng-disabled="missingInfo()">save</button>
  <button ng-click="action2()" ng-disabled="!good.info1">'loose' save</button>
  <button ng-click="delete()" ng-if="good.id" type="button">delete</button>
  <button ng-click="action3()" ng-if="isSpecial">Add caracteristic</button>          

我使用此表格从头开始注册商品,但我也可以修改现有的。

如果我正在创建商品,包含对象类别的输入将是强制性。 但是如果我修改它,类别应该是不可更改

确保安全

我已经使用“readonly”(编辑:ng-readonly="good.id")属性使其无法修改类别,但我的问题是:

How do you make this input secure, regarding possible manipulation of the html ?

我所说的安全是指无法为现有对象赋予新类别。

EDIT: Considering the answer of Quertiy: In which extent, the ng-readonly directive makes it more secure than a simple readonly attribute ?

提前感谢您的回答!

How do you make this input secure, regarding possible manipulation of the html ?

确保应用程序安全的唯一方法是在服务器端验证数据。
如果出现 id,只需删除 category

But if I am modifying it, the category should be unchangeable for good.

ng-requiredng-disabled 接受布尔值作为参数。像这样使用它:

<input ng-model="good.category" ng-disabled="good.id" ng-requred="!good.id">