Angularfire $save array
Я пытаюсь сохранить коллекцию данных после того, как я обновил запись в массиве.
// Edit a post
$scope.editMe = function(message) {
if($scope.textBoxMessage = "What good did you do today?"){
$scope.textBoxMessage = "Here you can edit your post by entering a new message and pressing edit on the affected post" + "\n \n" + "Your post:" + "\n" + message.post;
}
else{
$scope.message.post="hello"; //$scope.newMessage
$scope.messages.$save(2);
}
}
Один пользователь ввел некоторый текст в текстовое поле, и я хочу заменить его уже сохраненными данными. Это переписывает message.data с некоторым текстом. Поскольку я читаю в данных, как это:
var list = fbutil.syncArray('posts/'+user.uid);
я также попытался просто сказать:
message.post = $scope.newMessage;
list.$save()
Ни один из этих двух методов не работает, но я уверен, что это незначительная ошибка.
ED: в соответствии с API AngularFire, посетите: https://www.firebase.com/docs/web/libraries/angular/api.html
list[2].post = "hello";
list.$save(2);
должен работать, но мне не повезло.
1 ответ
Хорошо, вот как я это решил:
Проблема была больше связана с оператором if else, чем с самим кодом сервера. $ Scope.textBoxMessage всегда верен, несмотря ни на что, и это то, что беспокоило меня. Даже если я скажу, что если ($scope.textBoxMessage = "hi"), это будет верно.
Я не уверен, почему это так, но не стесняйтесь комментировать, если у вас есть какие-либо предложения.
Вот как я это решил:
// Edit a post
$scope.editMe = function(message) {
if($scope.newMessage == null){
$scope.textBoxMessage = "Here you can edit your post by entering a new message and pressing edit on the affected post" + "\n \n" + "Your post:" + "\n" + message.post;
}
else{
message.post = $scope.newMessage;
list.$save(message);
$scope.textBoxMessage = chatmessage;
$scope.newMessage = null;
}
}