繁体   English   中英

如何将范围模型的引用传递给函数

[英]How to pass a reference of scope's model to a function [duplicate]

这个问题已经在这里有了答案:

如何将范围模型的引用传递给函数,以便在其中编辑其内容?

例如,我有这样的控制器:

app.controller('MyController', function ($scope) {
    $scope.magic = 123;

    $scope.someMethod = function(model) {
        model = 321;
    }
});

和一个视图:

<div data-ng-controller="MyController as ctrl">
    ...

    <input type="text" data-ng-model="magic">

    <button type="button" data-ng-click="someMethod(magic)">
</div>

现在,当我单击按钮时,它几乎可以使用,但是在someMethod之后,实际的$ scope.magic仍然没有更改,仍然是321。因此,显然someMethod创建了模型的副本,而不是引用。 如何获得参考呢?

将您的someMethod更改为以下内容:

$scope.someMethod = function(model) {
    model.magic = 321;
}

// Or accepting a new value
$scope.anotherMethod = function(model, value) {
    model.magic = value;
}

HTML:

<input type="text" data-ng-model="model.magic">
<button type="button" data-ng-click="someMethod(model)">Do Some Magic!</button>

<!-- Or with passing a new value -->
<button type="button" data-ng-click="anotherMethod(model, '123')">Do Some Magic!</button>

JSFIDDLE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM