Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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 AngularJS在指令模板中执行控制器函数_Javascript_Angularjs_Directive - Fatal编程技术网

Javascript AngularJS在指令模板中执行控制器函数

Javascript AngularJS在指令模板中执行控制器函数,javascript,angularjs,directive,Javascript,Angularjs,Directive,我用AngularJS做了一个自定义指令, 在模板中,我调用了控制器中的一个函数, 但它不起作用 谢谢你的帮助:) myapp.controller(“myCtrl”,函数($scpoe){ $scope.myfunction=function(){ 警报(“123”); }; }); myapp.directive(“ngSelectbox”,function()){ 返回{ 限制:“E”, 范围:{ 项目:“=”, myfunction:“&” }, 模板: "" + “

我用AngularJS做了一个自定义指令, 在模板中,我调用了控制器中的一个函数, 但它不起作用

谢谢你的帮助:)


myapp.controller(“myCtrl”,函数($scpoe){
$scope.myfunction=function(){
警报(“123”);
};
});
myapp.directive(“ngSelectbox”,function()){
返回{
限制:“E”,
范围:{
项目:“=”,
myfunction:“&”
},
模板:
"" +
“
    ”+ “
  • {{item.TYPE}
  • ”+ “
”+ "" }; });
您应该将指令放入控制器包装中,如下所示

<div ng-controller="myCtrl">
     <ng-selectbox my-function="myfunction()" items="codes"></ng-selectbox>
</div>


不要在您使用指令的地方添加呼叫方括号,只需像这样使用

控制器在哪里?是的,它在我的控制器内,很抱歉我没有提到。谢谢,已尝试,但不起作用:(如果我想通过myfunction传递参数呢?嘿,找到了解决方案,您使用了
myfunction
属性,在指令myfunction中,而不是myfunction,只需将
myfunction
替换为
myfunction
,它就会工作,请参见工作示例plnkr.co/edit/1CblTUHoMTZMKLOf4INE?p=预览非常感谢!它真的让我困惑了很久…谢谢你解决它。是的,当然,检查工作示例(检查控制台):只需将函数范围修改为“=”(双向绑定)。
<div ng-controller="myCtrl">
     <ng-selectbox my-function="myfunction()" items="codes"></ng-selectbox>
</div>