如何在服务中动态生成模型名称

how to dynamically generate model names in a service

本文关键字:模型 动态 服务      更新时间:2023-09-26

我有一个服务,我正在使用它为模型名称应用一个唯一的编号。我得到的结果是这个

 "sectionInputs": [
  {
    "model": "price_min1"
  },
  {
    "model": "price_max2"
  },
  {
    "model": "units_occ3"
  },
  {
    "model": "inv_mod4"
  },
  {
    "model": "inv_fin5"
  },
  {
    "model": "inv_vdl6"
  },
  {
    "model": "inv_uc7"
  },
  {
    "model": "inv_fut8"
  },
  {
    "model": "inv_con9"
  },
  {
    "model": "units_total10"
  }
]

我需要每个都有"1"。然后在下一个对象数组中,我需要它们有'2',等等…到现在为止,每个对象数组都是这样的。我对所有的设置都很在行。plunker

function sectionInputSvc(sectionInputs) {
var vm = this;
vm.sectionInputsArry = sectionInputs;
vm.sectionInputs = function () {
    var arry = [];
    var counter = 0;
    for (var i = 0; i < vm.sectionInputsArry.length; i++) {
        counter++
        var obj = {
            model: vm.sectionInputsArry[i].model + counter
        };
        arry.push(obj);
    };
    return arry;
};

};

[EDIT 2]

在app.js…

sections[i].sectionInputs = sectionInputSvc.sectionInputs(sections[i],i);

在.service.js…部分

    function sectionInputSvc(sectionInputs) {
    var vm = this;
    vm.sectionInputsArry = sectionInputs;
    var obj2={};
    vm.sectionInputs = function (obj2,num) {
        var arry = [];
        var counter = 0;
        for (var i = 0; i < vm.sectionInputsArry.length; i++) {
            counter++
            var obj = {
            model: vm.sectionInputsArry[i].model + num
        };
            arry.push(obj);
        };
        return arry;
    };
};

使用linq.js,并假设名称上不存在后缀:

vm.sectionInputs = function () {
    return Enumerable.From(vm.sectionInputsArry).Zip(Enumerable.ToInfinity(1),
        "{ model: $.model+$$ }"
    ).ToArray();
};