从 $scope 上的函数访问控制器内的实例函数
Accessing instance functions inside controller from function on $scope
我有一个看起来像这样的控制器:
function controller($scope)
{
this.helper() = function()
{
// some processing
};
$scope.doSomething = function()
{
helper();
};
}
当调用doSomething时,我收到一个错误,指出helper()未定义。将"this"放在对helper()的调用前面也不起作用,因为这里的"this"指的是$scope而不是控制器实例。
我的问题是:有没有办法从作用域上的函数中调用这样的本地帮助程序函数?(我知道我也可以把 helper() 放在$scope上,但宁愿不这样做,因为它严格来说是一个方便的函数,而不是从视图中调用的东西。
像这样构建代码的原因是为了便于将 helper() 函数与单元测试分开测试。
function controller($scope)
{
this.helper() = function()
{
// some processing
};
var helperScope = this;
$scope.doSomething = function()
{
helperScope.helper();
};
}
当然,给它一个比这更具描述性的名称,但基本思想是将this
分配给所需范围内的变量。
相关文章:
- AngularJS,angular.element($0).scope()揭示了每个控制器的函数
- 为什么我的控制器没有启动函数.js脚本
- 从全局函数调用Ember控制器上的方法
- AngularJS:控制器中的函数被模板多次调用
- 在Angular中呈现DOM对象时,如何调用控制器中指定的函数
- Angular,从指令控制器中的控制器触发函数
- 如何在指令链接函数中使用从控制器传递的筛选器
- 从控制器Angularjs调用链接函数
- 角度指令控制器:参数不是函数,未定义
- 如何从页面中的jquery调用angular js函数控制器
- angularjs调用事件中控制器的一个函数
- 通过指令在控制器中执行javascript函数
- AngularJS执行指令模板中的控制器函数
- 从指令链接函数监视控制器作用域
- AngularJS:如何与其他控制器共享作用域函数和变量
- 如何在angular ui模态控制器中定义函数
- 当指令中已经给定作用域时,如何访问控制器中声明的函数
- AngularJS:如何调用指令中定义的函数'控制器的作用域
- 我是否需要将工厂调用放在控制器的函数中
- 如何在角函数控制器中传递绑定值