问题
是否可以通过ng-click调用的函数将作用域变量(特别是数组)按引用传递,并操作该变量的值?
更新:
更明确地说,我的目标是避免在$scope.app.onItemClick
中访问$scope。
示例
Javascript:
(function() {
angular.module('test', [])
angular.module('test').controller('test',['$scope', function ($scope) {
$scope.app = {};
$scope.app.primarySet = [
'test1',
'test2',
'test3'
]
$scope.app.workingSet = [
'test4',
'test5',
'test6'
]
/*
* Attempts to assign $scope.app.primarySet to $scope.app.workingSet using references to those two values.
*/
$scope.app.onItemClick = function (primarySet, workingSet) {
primarySet = workingSet
}
}])
})()
相关的HTML:
<button type="button" ng-click="app.onItemClick(app.primarySet, app.workingSet)">Update Primary Set</button>
请查看这个Plunker,以了解此代码的更多上下文。
我对这段代码的期望是,在按下按钮时,
$scope.app.primarySet
会被设置为$scope.app.workingSet
。不幸的是,情况并非如此。在调试中,函数作用域中,primarySet
被赋值给workingSet
,但是$scope.app.primarySet
没有得到修改。动机
我的动机源于这个SO回答。我认为,如果不直接引用它,测试操作范围的方法会更容易。我也觉得这比让一个函数直接操作范围更简单。
之前的研究
我找到的唯一相关资源是这个SO问题。虽然这个问题很接近,但问题所涉及的参数是字符串,如果我理解正确,就无法像预期的引用那样进行修改。
$scope.app
зҡ„зӣ®ж Үд»Қ然没жңүи§ЈйҮҠдҪ жғіиҰҒеңЁиҝҷдёӘеҮҪж•°дёӯеҒҡд»Җд№ҲгҖӮдёәд»Җд№ҲдҪ дёҖејҖе§Ӣе°ұдёҚжғідҝ®ж”№дҪңз”ЁеҹҹиҝӣиЎҢжөӢиҜ•е‘ўпјҹ - charlietfl