我有一个现有的数组,其中包含一个对象和几个属性,是在第一步中创建的。它是由以下函数创建的:
$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"
}]
也许需要考虑的另一件事是,在应用程序中存在许多不同的对象列表,其中一些已经定义了"到达"属性,但有些可能在以后才会定义。有什么建议吗?
编辑:
我得到了两个解决方案,但都没有实现我想要的目标,所以可能我没有清楚我要做什么。我正在将一组对象保存到数组中,每个对象都有一个"到达"属性,在第二步中将被定义。因此,首先我创建了这样一个对象数组:
[
{
"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
属性,因为应用程序跟踪汽车运动,汽车尚未到达目的地。每行还具有一个按钮,触发
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 的两个解决方案让我可以为数组的第一个对象或者所有对象同时定义到达时间,但是不能分别为每个对象定义。
这是调用 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>
这样,您有没有关于如何到达那里的提示呢?
insertRecord
呢? - a better oliverinsertRecord
的部分。 - a better oliver