2013-05-16 80 views
2

現在我有這樣的一個靜態副本,在視圖中:保存模型在AngularJS

<input ng-model="kunde" type="text"> 

和控制器試圖模型保存到一個工廠:

$scope.setKunde ($scope.kunde) { 
    factory.set($scope.kunde); 
} 

的現在的問題是,當然每次我用輸入字段改變模型時,setter函數都會自動觸發。

現在我的問題是,如何以靜態方式從視圖中保存模型,即對於http post請求。我不想每次更改視圖時發佈請求。

感謝

+0

它是如何自動觸發的? – Bart

+0

'$ scope.kunde'是一個對象,數組還是基元?如果它是一個對象或數組,那麼如果您不想更改'$ scope.kunde'來更改您在工廠中設置的對象/數組,則需要創建一個副本。 – rtcherry

+0

@rtcherry kunde是一個對象,這正是我想要做的,每當我通過輸入編輯作用域對象時,它會觸發該函數,並且工廠中的對象被覆蓋。但是我想讓那個範圍對象的「快照」不會被輸入的改變所編輯。 – rza132456

回答

0

簡單失敗礦。

如果你有一個語法錯誤是這樣的:)

<button ng-on-click="send()"> 

的方法來發送(觸發您使用的輸入來操縱EVERY TIME:

<button ng-on-click="{{send()}}"> 

應這樣看模塊。 是否與方法有關。

感謝您的答案。

2

可以使用angular.copy複製你的對象:

http://docs.angularjs.org/api/angular.copy

+0

你有語法示例嗎?我試過這種方式:'$ scope.setKunde = function(kunde)var newKunde = angular.copy(kunde); calcFactory.setKunde(newKunde); };'它仍然以與以前相同的「錯誤」方式工作。 – rza132456

+0

嗯....我討厭這個建議。嘗試從副本中刪除$$ hashKey –