2014-09-03 87 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