Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度,将作用域传递给函数(将作用域作为变量传递?)_Javascript_Angularjs - Fatal编程技术网

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;