2014-10-28 93 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); 

    } 
} 

一個用戶在文本框中輸入了一些文本我想用已存儲的數據替換它。這通過用sometext覆蓋message.data。自從我的數據是這樣寫着:

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

我也試圖簡單地說:

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

無論是這兩種方法的工作,但我敢肯定,這是一個小的失誤。

ED: 根據angularFire API,請訪問:https://www.firebase.com/docs/web/libraries/angular/api.html#angularfire-firebasearray-save-recordorindex

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

應該工作,但我有沒有運氣。

+1

聲明'如果($ scope.textBoxMessage = 「HI」)'永遠是truthy(不'真'),因爲你分配一個值,而不是比較值。要比較值,請使用'=='而不是賦值運算符。 – Kato 2014-10-30 04:57:27

+0

你也是這樣,我的那個壞。 – seb 2014-10-30 09:49:50

回答

0

好這裏是我如何解決它:

的問題更多的是與if else語句然後用服務器代碼本身。無論如何,$ scope.textBoxMessage總是如此,這是困擾我的東西。即使我說如果($ scope.textBoxMessage =「嗨」)它將是真實的。

我不確定爲什麼會出現這種情況,但如果您有任何建議,請隨時發表評論。

這是我如何解決它:

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