Mam istniejącą tablicę z obiektem i kilkoma właściwościami utworzonymi w pierwszym kroku. Jest ona tworzona przez następującą funkcję:Dodawanie właściwości do każdego obiektu tablicy niezależnie od AngularJS angleular.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);
};
Wynika to w następującym szeregu:
[{
"date":"2014 10 16",
"time":"20.22",
"car":"396",
"driver":"Seb",
"from":"A",
"destination":"B",
"pax":"3"
}]
Co staram się zrobić to dodać inną nieruchomość do istniejącego obiektu na następnym etapie ng-click. Próbowałem z następującą funkcją, ale nie wydaje się działać.
$scope.insertRecord = function (recordlist) {
var arrival = { 'arrival' : moment().format("HH.mm") }
console.log(arrival)
angular.extend($scope.recordlist, arrival)
jsonToRecordLocalStorage($scope.recordlist);
}
Efektem końcowym szukam jest następujący:
[{
"date":"2014 10 16",
"time":"20.22",
"car":"396",
"driver":"Seb",
"from":"A",
"destination":"B",
"pax":"3",
"arrival":"23.10"
}]
Może inna sprawa wziąć również pod uwagę to, że w aplikacji istnieje możliwość posiadania wielu różnych obiektów są wymienione , niektóre mają już zdefiniowaną właściwość arrival
, ale niektóre mają ją później.
Jakieś wskazówki?
EDIT
W 2 rozwiązania mam pracowali, ale nie osiągnąć to, co szukam, więc prawdopodobnie było jasne, ja na to, co próbuję zrobić.
Zapisuję kolekcję obiektów w tablicy, każdy obiekt ma właściwość arrival
, która zostanie zdefiniowana w drugim kroku.
Więc najpierw utworzyć tablicę obiektów tak:
[
{
"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",
}
]
ta jest wyświetlana na widoku w układzie tabeli podobny. Każdy wiersz zawiera dane z obiektu i początkowo nie zawiera właściwości arrival
, ponieważ aplikacja śledzi ruchy samochodu, a samochód nie dotarł do miejsca docelowego.
Każdy wiersz ma również przycisk uruchamiający insertRecord()
, który definiuje czas przybycia i jego ma zawierać właściwość arrival
do każdego obiektu, niezależnie.
Tak więc w tym przykładzie, może samochód od drugiego obiektu przybył, i chcę, aby móc dodać właściwość arrival
tylko dla tego konkretnego obiektu, pozostawiając tablicę takiego:
[
{
"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"
}
]
2 proponowane rozwiązania z dfsq pozwoliły mi zarówno zdefiniować przybycie dla pierwszego obiektu tablicy, jak i dla wszystkich obiektów jednocześnie, ale nie dla każdego obiektu osobno.
Jest to kod HTML gdzie insertData nazywa się:
<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>
Będąc więc wszelkie wskazówki na temat jak się tam dostać?
„Każdy rząd ma także przycisk wyzwalania insertRecord()” - to dlaczego nie można przejść obiekt z tego wiersza do 'insertRecord'? – zeroflagL
Czy mógłbyś wyjaśnić, jak to zrobić? Dzięki!! –
Musisz pokazać tę część kodu HTML, czyli część, w której wywołano 'insertRecord'. – zeroflagL