我有一个现有的数组,其中包含一个对象和第一步创建的多个属性。它由以下功能创建:
$scope.recordlist = extractRecordJSONFromLocalStorage();
$scope.addRecord = function () {
$scope.recordlist.push(
{
date: $scope.dateJson,
time: $scope.time,
car: $scope.carList.code,
driver: $scope.driverList.name,
from: $scope.locationList.place,
destination: $scope.locationList2.place,
pax: $scope.paxList
}
);
$scope.custom = $scope.custom === false ? true: false;
$scope.carList = 0;
$scope.driverList = 0;
$scope.locationList = 0;
$scope.locationList2 = 0;
jsonToRecordLocalStorage($scope.recordlist);
};
结果为以下数组:
[{
"date":"2014 10 16",
"time":"20.22",
"car":"396",
"driver":"Seb",
"from":"A",
"destination":"B",
"pax":"3"
}]
我想做的就是下一步使用ng-click将另一个属性添加到现有对象中。我尝试了以下功能,但似乎无法正常工作。
$scope.insertRecord = function (recordlist) {
var arrival = { 'arrival' : moment().format("HH.mm") }
console.log(arrival)
angular.extend($scope.recordlist, arrival)
jsonToRecordLocalStorage($scope.recordlist);
}
我正在寻找的最终结果如下:
[{
"date":"2014 10 16",
"time":"20.22",
"car":"396",
"driver":"Seb",
"from":"A",
"destination":"B",
"pax":"3",
"arrival":"23.10"
}]
也许还需要考虑的另一件事是,在应用程序中可能会列出许多不同的对象,有些对象arrival
已经定义了属性,但有些对象会在以后发布。
有指针吗?
编辑
我找到了2个解决方案,但是没有完成我想要的,所以可能我不清楚我要做什么。
我将对象集合保存到数组中,每个对象都有一个arrival
将在第二步中定义的属性。
所以首先我创建一个像这样的对象数组:
[
{
"date":"2014 10 16",
"time":"20.42",
"car":"396",
"driver":"Seb",
"from":"A",
"destination":"B",
"pax":"3",
},
{
"date":"2014 10 16",
"time":"20.12",
"car":"319",
"driver":"Seb",
"from":"C",
"destination":"D",
"pax":"4",
},
{
"date":"2014 10 16",
"time":"20.22",
"car":"396",
"driver":"Seb",
"from":"G",
"destination":"A",
"pax":"1",
}
]
它以表格形式显示在视图上。每行都包含来自对象的数据,并且最初不包含该属性,arrival
因为该应用程序会跟踪汽车的行驶并且汽车尚未到达目的地。
每行还具有一个按钮trigger insertRecord()
,它定义到达时间及其应该arrival
独立地将属性包括到每个对象中的时间。
因此,在此示例中,也许第二个对象的汽车已经到达,并且我希望能够仅为该特定对象添加arrival
属性,而使数组像这样:
[
{
"date":"2014 10 16",
"time":"20.42",
"car":"396",
"driver":"Seb",
"from":"A",
"destination":"B",
"pax":"3"
},
{
"date":"2014 10 16",
"time":"20.12",
"car":"319",
"driver":"Seb",
"from":"C",
"destination":"D",
"pax":"4",
"arrival":"20.35"
},
{
"date":"2014 10 16",
"time":"20.22",
"car":"396",
"driver":"Seb",
"from":"G",
"destination":"A",
"pax":"1"
}
]
dfsq提出的2个解决方案使我都可以为数组的第一个对象或所有对象同时定义到达,但不能分别为每个对象定义到达。
这是调用insertData的HTML代码:
<div class="row msf-row" ng-repeat="record in recordlist | filter: search">
<div class="col-md-1">{{record.time}}</div>
<div class="col-md-1"><strong>{{record.car}}</strong></div>
<div class="col-md-1">{{record.driver}}</div>
<div class="col-md-3">{{record.from}}</div>
<div class="col-md-3">{{record.destination}}</div>
<div class="col-md-1">{{record.pax}}</div>
<div class="col-md-1">
<button ng-click="insertRecord()" ng-show="!record.arrival"><i class="fa fa-cog"></i></button>{{record.arrival}}
</div>
</div>
如此,关于如何到达那里的任何提示?
如果正确理解了您的问题,则要添加来更新单个记录arrival
。将记录传递给insertRecord
:
<button ng-click="insertRecord(record)" ng-show="!record.arrival">
您可以在此处将属性添加到相应的记录中:
$scope.insertRecord = function (record) {
record.arrival = moment().format("HH.mm");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句