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;
  }
}
Другие вопросы по тегам