Javascript 角度,将作用域传递给函数(将作用域作为变量传递?)
我试图将作用域传递给函数,但似乎无法使其正常工作。这是我所拥有的-Javascript 角度,将作用域传递给函数(将作用域作为变量传递?),javascript,angularjs,Javascript,Angularjs,我试图将作用域传递给函数,但似乎无法使其正常工作。这是我所拥有的- ng-click="clickFunction(scope1)" //the function $scope.clickFunction = function(passedScope){ passedScope = false; console.log($scope.scope1); 所以-这是prett直截了当的,我只想传入范围,并在这次单击中将其设置为false。当我在更改范围后记录它时,它仍
ng-click="clickFunction(scope1)"
//the function
$scope.clickFunction = function(passedScope){
passedScope = false;
console.log($scope.scope1);
所以-这是prett直截了当的,我只想传入范围,并在这次单击中将其设置为false。当我在更改范围后记录它时,它仍然说它是真的。我也试过了-
$scope.passedScope
我试图做的是设置$scope.scope1=false。它在控制器顶部设置为true,并控制该按钮附近的一个按钮,该按钮禁用了ng=“!scope1”,我不能只执行scope1=!范围单击,因为它通过一个模式来确认用户想要完成,然后运行一个modalInstance.result.then(函数(){然后我需要将传递的作用域设置为false。我只需要直接调用作用域,但我正在尝试创建一个可以跨多个delete函数使用的函数,从而尝试传递需要更改为false的作用域
我想我可以通过函数传递范围
谢谢
更新
根据@Josep今天向我展示的内容,我能够通过像这样的字符串传递作用域来进行工作
ng-click="clickFunction('scope1')"
然后做什么
$scope[passedScope] = false;
如果要将视图的一部分的当前范围传递给函数,方法是:
ng-click="clickFunction(this)"
但是在你的函数中,你应该这样对待这个范围:
$scope.clickFunction = function(passedScope){
passedScope.somePropertyOfTheScope = false;//<---Notice the difference with the code that you are suggesting.
ng-click="clickFunction()"
$scope.clickFunction=函数(passedScope){
passedScope.somePropertyOfTheScope=false;//作为(帮助我找到答案)的替代方法,您可以这样调用:
$scope.clickFunction = function(passedScope){
passedScope.somePropertyOfTheScope = false;//<---Notice the difference with the code that you are suggesting.
ng-click="clickFunction()"
然后在您的函数中,您可以使用此
引用当前范围:
$scope.clickFunction = function() {
this.somePropertyOfTheScope = false;
//...
}
这在使用创建新作用域的ng include
时非常有用,因此clickFunction
实际上是父作用域。@Josep单击函数做了很多其他事情,我将它们删除,因为它们不相关,如果单击函数中发生某些其他事情,只需将此作用域设置为true。其中scope1是第一次声明/使用的吗?从示例中根本不清楚您要做什么。scope=false?@Ajmajma我已经更新了我的答案,我想现在我明白您要做什么了,请看一看。@mccainz我试图再详细说明一点。我试图将scope设置为false是的,但我想通过它这个函数在多种不同的用途中都是动态的。很抱歉造成混淆!我引入的范围不是click对象的模型啊,是的,这会解释它,非常感谢你花时间回答这个问题!!@AjMajma没问题!我很高兴知道我能够帮到你。我能够用你的方式解决这个问题u今天在这里向我展示了如何将var名称作为字符串传递,如so-ng click=“clickFunction('scope1')”,然后执行$scope[passedScope]=false;