Angularjs 向$scope公开指令方法
我的一个表单指令遇到了一些问题:/I我想要一个可以与页面中的其他指令通信的指令,该指令将与控制器通信。 此指令将公开一些用于表单的功能Angularjs 向$scope公开指令方法,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我的一个表单指令遇到了一些问题:/I我想要一个可以与页面中的其他指令通信的指令,该指令将与控制器通信。 此指令将公开一些用于表单的功能 function Form() { return { restrict: 'A', scope: false, require: 'form', transclude: false, controller: ['$scope','$element','$attrs','$ti
function Form() {
return {
restrict: 'A',
scope: false,
require: 'form',
transclude: false,
controller: ['$scope','$element','$attrs','$timeout', function($scope, $element, $attrs, $timeout) {
let ctrl = this;
$scope.obj = {}
$scope.obj.fun1 = fun1;
$scope.obj.fun2 = fun2;
$scope.obj.fun3 = fun3;
$scope.obj.fun4 =fun4;
function fun1 (par1, par2){
// code
}
function fun2(){
// code
}
function fun3 (par1, par2, par3, par4){
// code
}
function fun4(){
// code
}
}]
}
}
但是,当我试图调用我在$scope上公开的其中一个方法时,我得到了未定义的。例如,如果我在方法周围加上$timeout,并且没有设置秒数,它就可以正常工作。有没有一种方法可以在没有$timeout的情况下实现这一点
非常感谢。将这些函数放在服务中,并在需要的任何地方注入它们因为这些函数也可以与HTML一起工作,我不想将它们放在服务中。在这种情况下,您可以在指令中使用包装器调用服务函数这没关系,因为我无法从控制器调用指令的函数。这些函数做什么?您如何使用它们?它们与FormController一起工作,并处理表单及其输入的错误消息