첫 번째 단계에서 생성 된 객체 및 여러 속성이있는 기존 배열이 있습니다. 그것은 다음과 같은 기능에 의해 생성됩니다AngularJS angle.extend를 사용하여 배열의 각 객체에 독립적으로 속성 추가
그것은 다음과 같은 배열 결과$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"
}]
난 할 노력하고있어하기와 다음 단계에 기존 개체에 다른 속성을 추가하는 것입니다 클릭하십시오. 나는 다음과 같은 기능을 시도했지만 작동하지 않는 것 같습니다.
$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
을 갖습니다.
그래서 제 I는 다음과 같이 오브젝트의 배열을 생성 :
[
{
"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
을 포함하지 않습니다.
각 행에는 도착 시간과 각 개체에 arrival
속성을 독립적으로 포함시켜야한다고 정의하는 insertRecord()
버튼이 있습니다. 이 예에서는 그래서
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 가지 제안 된 솔루션을 사용하여 배열의 첫 번째 객체 또는 모든 객체에 대해 한 번에 도착을 정의 할 수 있었지만 각 객체마다 별도로 도착을 정의 할 수는 없었습니다.
<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>
너무이기 때문에, 어떠한 힌트가 어떻게 거기에 도착하기 :
이 insertData가 호출되는 HTML 코드?
"각 행은 또한 insertRecord을 (트리거 버튼)가"- 그럼 왜 당신이 통과하지 해당 행의 객체를'insertRecord'에? – zeroflagL
그 방법을 자세히 설명해 주시겠습니까? 감사!! –
'insertRecord'가 호출되는 HTML의 일부분을 보여줘야합니다. – zeroflagL