【问题标题】:Dynamic ng-model into ng-repeat AngularJS动态 ng-model 到 ng-repeat AngularJS
【发布时间】:2015-10-12 14:38:59
【问题描述】:

我正在尝试在ng-repeat 中动态生成ng-model 指令,但我收到来自浏览器的错误。我们获得了一个类型的动态属性,我想在 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>

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

【问题讨论】:

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


【解决方案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>

【讨论】:

    【解决方案2】:

    你可以这样做:

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

    【讨论】:

      【解决方案3】:

      不要在 ng-model 中使用 {{}}。将 [] 用于动态 ng-model。在你的情况下使用这样的

      <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 = []。希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2017-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-02
        • 2014-02-26
        • 1970-01-01
        • 2015-10-18
        • 2014-10-04
        相关资源
        最近更新 更多