动态ng模型转换为ng-repeat AngularJS

时间:2015-10-12 14:39:00

标签: javascript angularjs angularjs-ng-repeat dynamically-generated angularjs-ng-model

我试图在ng-model中生成动态ng-repeat指令但是我从浏览器收到错误。我们得到一个类型的动态属性,我想在DOM中设置它。

我收到了这个错误:

Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 2 of the expression [{{'attribute.'+attribute.label}}] starting at [{'attribute.'+attribute.label}}].

点击here

<div class="form-group" ng-repeat="attribute in objectType.objectAttributes | orderBy : attribute.order">
     <div class="col-sm-10" ng-if="attribute.multivalued==false">
          <input type="{{attribute.type}}" class="form-control"
              ng-model="{{'attribute.'+attribute.label}}">
     </div>
</div>

你有什么想法可以帮助我解决这个问题吗? 谢谢!

3 个答案:

答案 0 :(得分:1)

这不是正确的形式,如果我尝试了会发生错误,但最后我做了这个,然后我得到了整个属性列表。如果更改输入,则将attribute.value更改为每个属性。 这很棘手但有效! 谢谢!

<div ng-repeat="attribute in indoor.values | orderBy : attributes[$index].order">
     <input type="{{attributes[$index].type}}" class="form-control"
          ng-model="attribute.value">
</div>

答案 1 :(得分:0)

你可以这样做:

ng-model="attribute.{{attribute.label}}"

答案 2 :(得分:0)

不要在ng-model中使用{{}}。使用[]进行动态ng模型。在你的情况下使用像这样

<div class="form-group" ng-repeat="attribute in objectType.objectAttributes | orderBy : attribute.order">
 <div class="col-sm-10" ng-if="attribute.multivalued==false">
      <input type="{{attribute.type}}" class="form-control"
          ng-model="value1[attribute.label]">
 </div>

其中ng-model中的“value1”是您的输入值。但请记住在控制器中使用$ scope.value = []。我希望它可以帮到你