将模型传递给控制器​​以改变控制器

时间:2014-09-03 16:14:54

标签: 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" />
<div class="button-container">
    <button type="button" ng-click="setValue(inputModelTwo)"></button>
</div>

我的视图控制器:

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

我需要能够连接&#34;输入字段及其按钮,我通过使相应的按钮将相应的输入字段模型传递给要修改的控制器来完成此操作。问题是,当我点击按钮时,该功能会关闭,valueToSet会被更改,但更改不会反映在视图中!我错过了什么?

1 个答案:

答案 0 :(得分:1)

如果您尝试将模型动态传递为函数参数,则需要使用点表示法访问模型上的 PROPERTY

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

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

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

然后将整个模型传递给您正在进行的功能。

在函数内部,改变你想要的属性(在这种情况下&#39; text&#39;),如下所示:

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

JSFiddle