无法有效地将复杂输入绑定到变量

时间:2016-07-25 15:44:31

标签: angularjs json binding angularjs-ng-repeat angularjs-ng-model

我是Angular的新手并且正在努力学习。我试图找到一种方法来绑定一些数量与他们的ID。这是我的模板:

"<div class='tableBorder'><label> <input ng-model='" + modelngQTY + "'  type='number' name='{{value.DetailID}}' /> {{value.Text | lowercase}}  </label> </div>"

modelngQTY是:

modelngQTY = "selectedOptions[value.CustomID].Details[value.DetailID].QTY";

不幸的是,使用此代码生成的对象是:

{"36":{"Details":{"107":{"QTY":2323232},"108":{"QTY":232323}}}}

我希望它看起来像这样:

 {"36":{"Details":[{DetailID: "107", "QTY":2323232},{DetailID: "108","QTY":232323}]}}

这是两者的并排视觉。我想要左边的那个: enter image description here

右边的版本非常难以通过ng-repeat进行循环。我有所有的数据显然我不知道如何编写模型。我尝试了{}和[],以及许多不同的ngmodel版本。我能得到的最好的是右边的版本。

我已经做了很多谷歌搜索,有很多关于如何过滤和使用ng-options进行ng-repeat的资源但是我几乎找不到任何关于将数据插入到模型中的信息。好的格式。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

可能的解决方案存在于http://plnkr.co/edit/9wMZAD?p=info

这些地图功能

 vm.endingStructure= _.map(vm.beginningStructure, function(object, value) {
    var newStructure = {};
    newStructure[value] = {
      Details: _.map(object.Details, function(qtyObject, value) {
        var arrayStructure = {
          DetailID: value,
          QTY:qtyObject.QTY
        };
        return arrayStructure;
      })
    };
    return newStructure;
  });

{ "36": { "Details": { "107": { "QTY": 2323232 }, "108": { "QTY": 232323 } } } }变为[ { "36": { "Details": [ { "DetailID": "107", "QTY": 2323232 }, { "DetailID": "108", "QTY": 232323 } ] } } ]