【问题标题】:Angular Array instead of object角度数组而不是对象
【发布时间】:2014-11-11 07:15:29
【问题描述】:

我认为有以下 HTML。在我注销值时单击按钮,该值是一个以数字作为键的对象,而不是数组。有谁知道我哪里出错了?

记录的是一个键为 0 的对象,访问方式如下:ObjectName.0

              <div class="EquipItems" ng-repeat="(key,value) in Day.equipment track by $index">
                   <label class="item item-input item-select">
                    <div class="input-label">
                        {{key}}
                    </div>
                    <select ng-model="value[$index].itemName" ng-options="item as item for item in Equipment.{{key}}">
                        <option value="">Select Option</option>
                    </select>
                    </label>
                    <label class="item item-input">
                        <input type="number" ng-model="value[$index].value" placeholder="Amount/Value">
                    </label>

                    <button class="button button-balanced button-outline button-block" ng-click="AddItem(value)">
                      Add {{key}}
                    </button>
               </div>

这是 Day 对象的结构。

{
                staff : [
                    {
                        name : '',
                        designation : '',
                        timeIn : '',
                        timeOut : ''
                    }
                ],
                vehicles : [
                    {
                        type : '',
                        distance : ''
                    }
                ],
                equipment : {
                    Staff : [
                        {
                            itemName : '',
                            value : ''
                        }
                    ],
                    Equipment : [
                        {
                            itemName : '',
                            value : ''
                        }
                    ],
                    Vehicles : [
                        {
                            itemName : '',
                            value : ''
                        }
                    ],
                    Absorbents : [
                        {
                            itemName : '',
                            value : ''
                        }
                    ],
                    PPE : [
                        {
                            itemName : '',
                            value : ''
                        }
                    ]

                },
                comment :  [
                    {
                        time : '',
                        comment : ''
                    }
                ],
                photos : [
                    {
                        src : '',
                        comment : ''
                    }
                ]
            }

【问题讨论】:

  • 没有人知道,因为我们没有看到你的数据结构。 Day.equipment 的结构如何?
  • 您能否分享您在控制台中看到的内容
  • 你的意思是ng-click=AddItem(value[$index].value)

标签: javascript arrays angularjs angular-ngmodel


【解决方案1】:

在这里创建一个演示:JSFIDDLE

在 AddItem 函数中,我把这个:

 $scope.AddItem = function(value){
    console.log(value);  // [Object]
    console.log(typeof(value)); //object
    console.log(Object.prototype.toString.apply(value)); //[object Array]  still an array
    console.log(value[0]); // get the object
};

value 仍然是一个数组。数组中的元素是Object。喜欢:

{
    itemName : '',
    value : ''
}

【讨论】:

    猜你喜欢
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 2020-12-15
    • 2016-03-28
    • 1970-01-01
    相关资源
    最近更新 更多