在 angularjs 形式中使用 ng-model 的边缘案例

Edge-case using ng-model in angularjs forms

我正在处理一个烦人的边缘案例,希望得到一些帮助。

情况:

问题:

所以:有什么办法解决这个问题吗?本质上,我正在寻找一种方法来使用 ng-model 各自字段的值属性填充或让 ng-model 确认 value 属性。我研究了 ng-bind、-init、-value 和其他,但大多数都是为了更多 'normal' 使用 angular。是的,我知道这不是利用 angular 的最佳方式,但在这种情况下我会受到我的要求的约束。如有任何帮助,我们将不胜感激。谢谢!

我会尝试创建一个指令来监视 value 属性并根据更改更新 ng-model。

.directive('value', function() {
     return {
         restrict: 'A',
         require: 'ngModel',
         link: function(scope, element, attr, ctrl) {
             attr.$observe('value', function(val) {
                 ctrl.$setViewValue(val);
             }
         }
     }
})

另一种选择可能是在 Javascript 中的模型端而不是模板中填充数据?

而不是

<input ng-blur="validateFName=true" 
       ng-required="true" 
       placeholder="First name" 
       type="text" 
       name="donation[first_name]" 
       ng-model="donation.first_name" 
       value="'{{ donation.first_name }}'">

如果你的控制器中有什么

...
$scope.donation.first_name = "'{{ donation.first_name }}'";
...