如何使用ng-repeat和ng-model将动态值绑定到输入?

时间:2016-04-01 13:15:11

标签: javascript angularjs angularjs-ng-repeat ng-repeat

我在将值绑定到angular的输入时遇到了一些问题。我先将'object [component.name]'初始化,然后将该值赋给ng-model。我这样做是因为我必须绑定ng-repeat的值。但是它给了我错误。以下是我的代码片段。非常感谢。

<div ng-repeat="component in reportTemplate" class="inputFieldSection inputFieldTitle" ng-if="component.type == 'text'">
                          <label class="item item-input">
                            <input type="text" name={{component.name}} ng-init="object[component.name]={{component.name}}"  ng-model="object[component.name]" ng-focus="clearValidation();" max-length="50" required placeholder="{{component.label}}">
                          </label>
                          <p ng-show="createReportForm.{{component.name}}.$error.required">Please Enter {{component.name}}</p>
                   </div>

以下是我在控制台中获得的错误

ionic.bundle.js:25510 Error: [$parse:syntax] Syntax Error: Token '{' invalid  key at column 25 of the expression [object[component.name]={{component.name}}] starting at [{component.name}}].
 http://errors.angularjs.org/1.4.3/$parse/syntax?p0=%7B&p1=invalid%20key&p2=…Bcomponent.name%5D%3D%7B%7Bcomponent.name%7D%7D&p4=%7Bcomponent.name%7D%7D
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:13248:12
at Object.AST.throwError (http://localhost:8100/lib/ionic/js/ionic.bundle.js:26061:11)
at Object.AST.object (http://localhost:8100/lib/ionic/js/ionic.bundle.js:26048:16)
at Object.AST.primary (http://localhost:8100/lib/ionic/js/ionic.bundle.js:25956:22)
at Object.AST.unary (http://localhost:8100/lib/ionic/js/ionic.bundle.js:25944:19)
at Object.AST.multiplicative (http://localhost:8100/lib/ionic/js/ionic.bundle.js:25931:21)
at Object.AST.additive (http://localhost:8100/lib/ionic/js/ionic.bundle.js:25922:21)
at Object.AST.relational (http://localhost:8100/lib/ionic/js/ionic.bundle.js:25913:21)
at Object.AST.equality (http://localhost:8100/lib/ionic/js/ionic.bundle.js:25904:21)
at Object.AST.logicalAND (http://localhost:8100/lib/ionic/js/ionic.bundle.js:25896:21) <input type="text" name="{{component.name}}" ng-init="object[component.name]={{component.name}}" ng-model="object[component.name]" ng-focus="clearValidation();" max-length="50" required="" placeholder="{{component.label}}" class="ng-pristine ng-untouched ng-valid">

1 个答案:

答案 0 :(得分:0)

ng-show指令不应包含{{}}(插值指令)。您可以使用对象createReportForm访问index对象。

ng-show="createReportForm[component.name].$error.required"

同样ng-init也有同样的错误ng-init="object[component.name] = component.name"

  

不确定为什么使用ng-init指令,应该避免使用。