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