AngularJS:重用标记来编辑对象的许多属性

时间:2014-08-20 23:06:51

标签: angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

我有一个具有很多属性的对象(所有类型编号)。我想编辑这些属性,因此对于每个属性我都有一个示例标记:

  <div>
    propertyA: <input type="number" step="0.1" ng-model="configuration.propertyA" required>
  </div>

Plunker

我不想为每个属性重复标记。我想使用ng-repeat或custom指令,但我不知道如何处理 ng-model =“...”

类似的东西:

<div ng-repeat="property in properties">
  {{property.???}}: <input type="number" step="0.1" ng-model="property.???" required>
</div>

或自定义指令(我知道如何转换静态文本,但使用 ng-model ):

<my-directive input-value="PropertyA???">PropertyA: </my-directive>

编辑(也许会解释更多):

我有一个来自Server的配置对象。我不想在问题的顶部重复标记。我希望有一次标记,然后循环每个属性,因此每个属性都将被编辑。最后,我想将配置发布回服务器。

3 个答案:

答案 0 :(得分:0)

跟随你在你的傻瓜中的obj,它只是

<div ng-repeat="item in configuration">
  {{item}} <input type="number" step="0.1" ng-model="item" required>
</div>

http://plnkr.co/edit/k1qXyANKRAHJs5drTmXt?p=preview

答案 1 :(得分:0)

$ scope.configuration = {     propertyA:$ scope。(NgModel-Name)&lt; ----

}  它不是将值放在这个$ scope中,而是称为2路绑定。 并使用ng-value来放置项的初始值。你明白了吗?

答案 2 :(得分:0)

使用指令非常容易。

app.directive('myInput', function() {
  return {
    restict: 'EA',
    template: '<input type="number" step="0.1" ng-model="value">',
    scope: {
      value: '=',
    },

  }
})

标记:

<span my-input value="configuration.weight"></span>

http://plnkr.co/edit/M9o5A8JYnQeDvhjWDCKU