2014-09-03 32 views
0

這裏是我的情況,我有這樣的HTML:通行證模型控制器的控制人變更

<input type="text" ng-model="inputModel" /> 
<div class="button-container"> 
    <button type="button" ng-click="setValue(inputModel)"></button> 
</div> 
<input type="text" ng-model="inputModelTwo" /> 
<div class="button-container"> 
    <button type="button" ng-click="setValue(inputModelTwo)"></button> 
</div> 

而且我的視圖控制器:

$scope.setValue = function (valueToSet) { 
    valueToSet = "Some value."; 
}; 

我需要能夠「連接」的輸入字段和它們的按鈕,我正在通過讓相應的按鈕將相應輸入字段的模型傳遞給要修改的控制器來完成此操作。問題是,當我點擊按鈕時,該功能會關閉並且valueToSet已更改,但更改不會反映回視圖中!我錯過了什麼?

+0

你'setValue'方法目前沒有做任何事情,但重新分配傳遞參數的值? – scarlz 2014-09-03 16:18:13

+1

您不通過模型,只需傳遞模型的值。這是一個原始的_String_。並且在你的函數中'$ scope.setValue'變量valueToSet是一個_String_。另外,你可以在'$ scope'中像'$ scope.inputModel'和'$ scope.inputModelTwo'那樣訪問你的模型'inputModel'和'inputModelTwo'。一切都取決於你想做什麼,所以請解釋你的問題 – ababashka 2014-09-03 16:29:33

+0

@ababashka你說得對,問題是我只是傳遞了原始字符串。 – 2014-09-03 17:18:44

回答

1

如果您試圖動態傳遞模型作爲函數參數,則需要使用點符號訪問模型上的PROPERTY

嘗試定義模式控制器,如下所示:

$scope.inputModel = {}; 
$scope.inputModelTwo = {}; 

$scope.inputModel.text = 'hey'; 
$scope.inputModelTwo.text = 'ho'; 

然後在整個模型的功能,通過你已經在做的。

在函數內部,改變你想要的屬性(在這種情況下,「文」),像這樣:

$scope.setValue = function (valueToSet) { 
    console.log(valueToSet); 
    valueToSet.text = "Some value."; 
}; 

JSFiddle