2014-12-01 62 views
0

我想將變量分配給另一個變量,並嘗試僅執行一種方式綁定。但是,當視圖更新值時,它也會更新爲原始變量。如何在分配變量給另一個時停止這種雙向綁定。強制單向綁定,同時將變量分配給另一個變量

例如:

function personController ($scope) { 
    var templateValue= "original value"; 

    $scope.myVal= templateValue; 
} 

鑑於:

<input type="text" ng-model="myVal" /> 

結果:

當我們鍵入文本框的東西,它更新myValtemplateValue值太大,即templateValue值更改爲我在輸入框中輸入的內容。有沒有辦法將變量分配給另一個只有一種方式綁定的變量?我想在$scope.myVal和輸入框之間進行雙向綁定,但不想在templateValue和輸入框之間進行雙向綁定。

回答

5

由於weay JavaScript的工作原因,你不能「強制單向綁定」。

在你的榜樣,更新myVal實際上不會更新templateValue

function personController($scope) { 
    var templateValue = "original value"; 
    $scope.myVal = templateValue; 
} 

如果你有以下的結構,那麼,改變myVal.test將更新templateValue.test,因爲它們都引用同一個對象在內存中。

$scope.myVal = angular.copy(templateValue); 

我也建議與Javascript by reference vs. by value熟悉自己:

function personController($scope) { 
    var templateValue = { test: "original value" }; 
    $scope.myVal = templateValue; 
} 
如果你想 myValtemplateValue引用不同的對象,但有相同的內容,使原來的對象的副本

相關問題