我试图在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>
你有什么想法可以帮助我解决这个问题吗? 谢谢!
答案 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 = []。我希望它可以帮到你