2014-07-27 41 views
0

我有一個控制器,它從工廠獲取數據,如下不工作。然後我有一個輸入,它使用ng-click來運行發送。問題是,當你發送它然後它被添加到數組中,但是如果你繼續輸入,那麼它會更新發送的消息,而不是讓你發送一個新消息。推輸入到陣列和清零輸入端按預期

如何將輸入傳遞給數組,讓我可以重複多次?

+0

你怎麼樣添加'輸入= {}'你推後呢? – Charminbear

+0

這完全沒有做任何事情。 –

+0

也許還會發布模板以更清楚地說明它是什麼。 問題是,通過將'input'推入數組中,您仍然在模型中保留一個引用('$ scope'),您不會刷新它。 – Charminbear

回答

1

嘗試使用angular.copy,使你不推相同的參考而是類似於輸入一個全新的對象

.controller('ChatDetailCtrl', function($scope, $stateParams, Messages) { 
    $scope.messages = Messages.get($stateParams.partnerId); 
    $scope.send = function (input) { 
    input.id = Math.random(); 
    input.sent = true; 
    input.time = new Date(); 
    $scope.messages.data.push(angular.copy(input)); 
    console.log($scope.messages); 
    } 
}) 
+0

這工作,謝謝。 –

0

沒有看過您的標記和/或input結構,這在這裏做的伎倆:

JsBin:http://jsbin.com/xevabevi/10/edit

像Charminbear說,你需要清除輸入數據的一些方式,推後到消息數組。

或者,你可以做在推以下內容:

$scope.arr.push(angular.copy(input)); 

這樣,你就不會輸入數據推到數組,而你會推它的一個副本。但是,這不會清除您的輸入字段,因爲原始input會保持不變。