我有一個控制器,它從工廠獲取數據,如下不工作。然後我有一個輸入,它使用ng-click來運行發送。問題是,當你發送它然後它被添加到數組中,但是如果你繼續輸入,那麼它會更新發送的消息,而不是讓你發送一個新消息。推輸入到陣列和清零輸入端按預期
如何將輸入傳遞給數組,讓我可以重複多次?
我有一個控制器,它從工廠獲取數據,如下不工作。然後我有一個輸入,它使用ng-click來運行發送。問題是,當你發送它然後它被添加到數組中,但是如果你繼續輸入,那麼它會更新發送的消息,而不是讓你發送一個新消息。推輸入到陣列和清零輸入端按預期
如何將輸入傳遞給數組,讓我可以重複多次?
嘗試使用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);
}
})
這工作,謝謝。 –
沒有看過您的標記和/或input
結構,這在這裏做的伎倆:
JsBin:http://jsbin.com/xevabevi/10/edit
像Charminbear說,你需要清除輸入數據的一些方式,推後到消息數組。
或者,你可以做在推以下內容:
$scope.arr.push(angular.copy(input));
這樣,你就不會輸入數據推到數組,而你會推它的一個副本。但是,這不會清除您的輸入字段,因爲原始input
會保持不變。
你怎麼樣添加'輸入= {}'你推後呢? – Charminbear
這完全沒有做任何事情。 –
也許還會發布模板以更清楚地說明它是什麼。 問題是,通過將'input'推入數組中,您仍然在模型中保留一個引用('$ scope'),您不會刷新它。 – Charminbear