Javascript 将模型传递给控制器以在控制器中进行更改

Javascript 将模型传递给控制器以在控制器中进行更改,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,以下是我的情况,我有以下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" />

以下是我的情况,我有以下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>

我需要能够“连接”输入字段和它们的按钮,我通过让相应的按钮将相应输入字段的模型传递给要修改的控制器来实现这一点。问题是,当我单击该按钮时,函数将启动,并且
valueToSet
已更改,但更改不会反映在视图中!我遗漏了什么?

如果您试图将模型作为函数参数动态传递,则需要使用点符号访问模型上的属性

尝试在控制器中定义模型,如下所示:

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

$scope.inputModel.text = 'hey';
$scope.inputModelTwo.text = 'ho';
然后将整个模型传递给函数,就像您已经在做的那样

在函数内部,更改所需的属性(在本例中为“text”),如下所示:

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

您的
setValue
方法当前除了重新分配已传递参数的值外,什么都没有做?您不传递模型,只传递模型的值。这是一个基本字符串。在函数中,
$scope.setValue
变量valueToSet是一个字符串。此外,您还可以在
$scope
中访问模型
inputModel
inputModelTwo
,如
$scope.inputModel
$scope.inputModelTwo
。一切都取决于你想做什么,所以请澄清你的想法question@ababashka你是对的,问题是我只是传递了原始字符串。
$scope.setValue = function (valueToSet) {
    console.log(valueToSet);
   valueToSet.text = "Some value.";
};