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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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,嗨,我是新来的,尝试一下指令。下面是代码 HTML javascript 我的问题是,如果我们将callhome函数传递给action属性,并且在ng click上调用带有括号的action函数,那么为什么在电话指令ng click='action'上设置属性时需要指定括号?为什么仅仅点击“动作”不起作用?我们已经在指定action=callhome。为什么两个位置都需要?因为没有指定函数。它具体说明了这一点。大多数情况下,您希望该表达式是函数调用,而函数调用需要、应用或新建等等 您可以指定其他

嗨,我是新来的,尝试一下指令。下面是代码

HTML

javascript

我的问题是,如果我们将callhome函数传递给action属性,并且在ng click上调用带有括号的action函数,那么为什么在电话指令ng click='action'上设置属性时需要指定括号?为什么仅仅点击“动作”不起作用?我们已经在指定action=callhome。为什么两个位置都需要?

因为没有指定函数。它具体说明了这一点。大多数情况下,您希望该表达式是函数调用,而函数调用需要、应用或新建等等

您可以指定其他内容:

ng-click="window.myGlobal = true;"

谢谢这是否意味着这也适用于我的指令action=callhome。为什么不行动=呼叫总部?
angular.module("scopetest", [])
.controller("controller", function($scope){
  $scope.callhome = function(){
    alert("called");
  }
})
.directive("phone", function(){
  return {
    scope: {
      action:"&"
    },
    template: "<button ng-click='action()' >Call</button>"
  };
});
ng-click="window.myGlobal = true;"