творю андроид приложение, использующее Ионную, который имеет статические пользователей JSON записей данных, которая выглядит так:как обновить запись JSON в ионном по идентификатору
serv.factory('Records', function(){
var users = [{
id: 0,
profilePic: 'img/pic4.jpg',
username: 'admin',
password: 'admin',
fname: 'first Name',
lastName: 'Last Name',
email: '[email protected]'
}, {
id: 1,
profilePic: 'img/pic3.png',
username: 'user',
password: 'user',
fname: 'First Name',
lastName: 'Last Name',
email: '[email protected]',
}];
return {
all: function(){
return users;
},
remove: function(user) {
users.splice(users.indexOf(user), 1);
},
get: function(userId) {
for (var i = 0; i < users.length; i++) {
if (users[i].id === parseInt(userId)) {
return users[i];
}
}
return null;
}
};
});
У меня есть модальный вид, который имеет входной текст со следующими значениями в приведенной выше записи. Теперь я пытаюсь обновить запись, получив все значения через ng-click = «updateUser (user)» и передав данные контроллеру. Моя функция контроллера заключается в следующем:
$scope.updateUser = function(user){
$scope.users.push({id : user.id, profilePic: user.profilePic, username: user.username, password: user.password, fname: user.fname, lastName: user.lastName, email: user.email, dob: user.dob});
Records.remove(user);
$scope.modal.hide();
};
это действительно работает, потому что я только что создал новый массив внутри пользователей и удаление записи других пользователей, где ID равно, что я вставил, а запись я вставила изменил свою позицию в нижней части моего списка отображения записей. Что я хочу знать, так это, есть ли вообще (возможный способ), что я могу обновить запись, не испортив вещи? например, когда я просматриваю вторую запись, она смешивает некоторые данные с первой записью :(Я просто хочу иметь обновление, подобное обновлению запроса базы данных FROM, где ID = ID, что-то вроде этого.
Я получаю обновить здесь, на мой взгляд:
<ion-view view-title="Account">
<ion-content can-swipe="true">
<ion-list can-swipe="true">
<ion-item class="item-remove-animate item-avatar item-icon-right" ng-repeat="user in users | orderBy:'id'" type="item-text-wrap" href="#/tab/account/{{user.id}}">
<img ng-src="{{user.profilePic}}" style="width: 64px; height: 64px">
<h2>{{user.username}}</h2>
<p>{{user.password}}</p>
<i class="icon ion-chevron-right icon-accessory"></i>
<ion-option-button class="button button-assertive" ng-click="remove(user)">
Delete<!-- <i class="icon ion-android-delete"></i> -->
</ion-option-button>
<ion-option-button class="button button-positive" ng-click="openModal(user.id)">
Edit<!-- <i class="icon ion-edit"></i> -->
</ion-option-button>
</ion-item>
</ion-list>
</ion-content>
</ion-view>
<script id="my-modal.html" type="text/ng-template">
<ion-modal-view>
<ion-header-bar class="bar bar-header bar-calm">
<button class="button button-clear button-primary" ng-click="modal.hide()"><i class="icon ion-android-close"></i></button>
</ion-header-bar>
<ion-content >
<form name="form" ng-model="form">
<ion-list>
<input type="hidden" ng-model="user.id">
<label class="item item-input">
<span class="input-label">Username</span>
<input type="text" value="{{user.username}}">
</label>
<label class="item item-input">
<span class="input-label">Current Password</span>
<input type="password" value="{{user.password}}">
</label>
<label class="item item-input">
<span class="input-label">New Password</span>
<input type="password" ng-model="user.newPass">
</label>
<label class="item item-input">
<span class="input-label">Confirm Password</span>
<input type="password" ng-model="user.confPass">
</label>
<label class="item item-input">
<span class="input-label">First Name</span>
<input type="text" value="{{user.fname}}" >
</label>
<label class="item item-input">
<span class="input-label">Last Name</span>
<input type="text" value="{{user.lastName}}" >
</label>
<label class="item item-input">
<span class="input-label">Email</span>
<input type="text" value="{{user.email}}" >
</label>
<label class="item item-input">
<span class="input-label">Date of Birth</span>
<input type="text" value="{{user.dob}}">
</label>
</ion-list>
<button class="button button-full button-positive" ng-click="updateUser(user)">Update</button>
</form>
</ion-content>
</ion-modal-view>
</script>
Хорошо, что помогло в изменяя представление. Спасибо, а как насчет части обновления? – aintno12u
, когда вы говорите, что обновление вставляет нового пользователя в ваш массив пользователей или вы меняете данные на существующего пользователя? – TimCodes
изменение данных на существующего пользователя – aintno12u