我正在编写一个基于Angular的小型Web应用程序来管理对文档池的访问以供下载。用户权限由四步程序管理:(a)管理员填写"创建新用户"需要密码的空白表格(这不是公共网站,因此管理员定义了用户的密码); (b)管理员列出所有用户; (c)管理员通过单击"编辑用户"从列表中选择一个用户。按钮; (d)管理员在与创建新用户1相同的表格上编辑用户数据,但密码是可选的,只有在预期更改时才输入。
目前"创建新的"和"编辑现有的"表单是单独的文件,以解决标题和密码字段所需状态的差异,但我试图将它们合并为一个表单。我已成功完成所有细节,除了在加载表单时需要输入密码输入字段为"创建新的"加载相同表格时不需要"编辑用户"目的。
在对stackoverflow进行了一些研究后,我尝试了ngRequired = expression,如下所示:
<input type="text" name="user_password" data-ng-model="user_password" data-ng-required="user_password.password_required">
在创建新控制器上,password_required
定义为
(...)
$scope.password_required = true;
(...)
而在编辑用户控制器中,同一行是
(...)
$scope.password_required = false;
(...)
但这根本不是改变输入字段所需的条件。对Angular中的改进或不同方法的任何建议(即,不向视图添加javascript代码)都将非常感激。
答案 0 :(得分:1)
我倾向于坚持ng-model
和ng-required
,它允许过去动态必需的字段,但我也不需要我的代码来运行HTML5验证器。据我所知,这是使用data-
前缀时的少数几个不同之处。
如果您不需要验证,请使用您的示例:
<input type="text"
name="user_password"
ng-model="user_password"
ng-required="password_required">
答案 1 :(得分:0)
U缺少变量名称。 请参阅此example
<input type="text" name="user_password" data-ng-model="user_password" data-ng-required="password_required">
在控制器中
$scope.password_required = true;