【问题标题】:Trouble binding complex input to variable, efficiently无法有效地将复杂输入绑定到变量
【发布时间】:2016-11-29 01:21:25
【问题描述】:

我是 Angular 的新手,正在努力学习。我正在尝试找到一种方法将一些数量与其 ID 绑定。这是我的模板:

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

型号数量为:

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}]}}

这是两者并排的视觉效果。我想要左边那个:

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

我已经做了很多谷歌搜索,并且有大量关于如何过滤和使用 ng-repeat 的 ng-options 的资源,但我几乎找不到任何关于以良好格式将数据插入模型的内容.

我在这里缺少什么?

【问题讨论】:

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


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

    【讨论】:

    • 这看起来正是我要找的东西!!!谢谢!抱歉,如果这是一个愚蠢的问题,但如果我更改 newStructure 它不会绑定到旧数据,是吗?
    • 正确,除非您将地图分配给包含原始数据的变量,否则您的原始数据不会改变。
    • 如果您必须调用 API 来更新原始结构中的数据,您可以将 ng-repeat html 代码绑定到这个新结构,并在更新调用中解构到 api 调用中的原始数据.您可以提供服务来处理新/旧版本的构建。
    猜你喜欢
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    相关资源
    最近更新 更多