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