У меня есть простой AngularJs
применение медицинских карт.Почему массив сохраняет последние данные и не очищается?
У меня есть хранилище с ним и отображать его на своем home.html
с помощью dx-datagrid
:
Одна карта имеет много записей, я получаю записи карты из recordsArray
по cardId
getVardsRecordsByCardId: function (id, recordsArray) {
if (recordsArray.length != 0) {
for (var i = 0; i < recordsArray.length; i++) {
if (recordsArray[i].cardId === id) {
cardsRecords = cardsRecords.concat(recordsArray[i]);
}
}
}
return cardsRecords;
}
сейчас У меня есть записи только в третьей карте. Я добавил функцию на кнопку для тестирования:
var jdskla = [];
var localCardId = 0;
$scope.showCardDetails = {
text: "",
type: "default",
icon: "preferences",
onClick: function() {
if ($scope.itemIdFromShowButton) {
$location.path('/carddetail/' + $scope.itemIdFromShowButton);
var jdskla =[];
var jdskla = businessLogicOfMyApp.getVardsRecordsByCardId($scope.itemIdFromShowButton, $scope.recordsArray);
console.log($scope.itemIdFromShowButton)
console.log(jdskla);
}
else {
alert("Error!!!");
}
}
};
1,3,1 является cardId
«s и array
записей. Но почему array
карточных записей не удаляет и сохраняет последние данные?
Может быть, кто-нибудь знает, как я могу это решить? Спасибо за ваши ответы!
P.S. Я использую ng-view
директиву в моем приложении, и я пытался очистить мое array
использовать другую кнопку:
$scope.backToGeneralPage = {
text: "Back",
onClick: function() {
jdskla = [];
$location.path('/');
}
};
, но это не было полезно.
Я думаю, вы хотите просто изменить, где вы использовали array.concat для array.push. –
@Mike Feltman, спасибо, я изменил его, но он все еще не работает. –
Обратите внимание, что вы используете 'var jdskla' дважды в разных областях javascript, поэтому на самом деле есть две разные переменные с одинаковым именем – charlietfl