我有一个看起来像这样的控制器:
function controller($scope)
{
this.helper() = function()
{
// some processing
};
$scope.doSomething = function()
{
helper();
};
}
当调用doSomething时,我收到一条错误,指出没有定义helper()。将'this'放在对helper()的调用之前不起作用,因为'this'在这里指的是$ scope而不是控制器实例。
我的问题是:有没有办法在范围内的函数内调用这样的本地帮助函数? (我知道我也可以在$ scope上放置helper(),但不要因为它只是一个方便的函数,而不是从视图中调用的东西。)
构造这样的代码的原因是为了便于单独测试helper()函数。
答案 0 :(得分:0)
function controller($scope)
{
this.helper() = function()
{
// some processing
};
var helperScope = this;
$scope.doSomething = function()
{
helperScope.helper();
};
}
当然,给它一个更具描述性的名称,但基本的想法是将this
分配给你想要的范围内的变量。