2014-10-28 1 views
0

배열의 항목을 업데이트 한 후 데이터 콜렉션을 저장하려고합니다.

// 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를 sometext로 덮어 쓰면됩니다. 내가 이런 식으로 데이터를 읽을 수 있기 때문에 :

message.post = $scope.newMessage; 
list.$save() 

이 두 가지 방법 중 어느 쪽이 작동하지만 난 그것이 사소한 실수 확신 :

var list = fbutil.syncArray('posts/'+user.uid); 

이 나는 ​​또한에 간단하게 말 했어요.

ED : https://www.firebase.com/docs/web/libraries/angular/api.html#angularfire-firebasearray-save-recordorindex

list[2].post = "hello"; 
    list.$save(2); 

가 작동해야하지만 난 운이 없었을 : angularFire API에 따르면, 방문하십시오. 여기에 좋아

+1

문'경우 ($ scope.textBoxMessage 것은 = "안녕하세요") '항상 (안'TRUE') 당신이 값을 할당하기 때문에,하지 truthy 될 것입니다 값을 비교합니다. 값을 비교하려면 대입 연산자 대신'=='를 사용하십시오. – Kato

+0

그게 사실이긴하지만, 저것은 나쁘다. – seb

답변

0

내가 그것을 해결하는 방법입니다

문제는 서버 코드 자체와 다음의 경우 else 문과 더 있었다. $ scope.textBoxMessage는 무엇이든지 상관없이 항상 사실입니다. 이것이 나를 귀찮게합니다. 내가 ($ scope.textBoxMessage = "hi") if라고해도 그것은 사실 일 것이다.

이유가 확실하지 않지만 의견이 있으면 언제든지 말씀해주십시오.

내가 그것을 해결하는 방법입니다

// 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; 
    } 
}