2016-03-10 47 views
-1

我想重构一个1.4 AngularJS指令到1.5组件。我尝试删除$ scope,并用this替换它。如何在回调函数中处理Angular 1.5组件?

它迄今为止工作正常,除了:我需要在回调函数内设置一个$scope变量。就像这样:

this.variable = {}; 

someFunction().then(function(newValue) { 
    this.variable = newValue; 
}); 

但是,this是回调函数里面不确定的。

如何解决方法或将this.variable的值设置为正确的方式?

+0

这可能有助于理解为什么发生。 https://toddmotto.com/understanding-the-this-keyword-in-javascript/它是JavaScript的核心概念。下面的答案向您展示解决方案。 – ste2425

回答

2

您需要的范围分配给你的函数:

this.variable = {}; 

someFunction().then(function(newValue) { 
    this.variable = newValue; 
}.bind(this)); 
0

this自己的函数中,指的是funtion本身,这就是为什么你得到了一个未定义。

将全球this.variable = {}更改为$scope.variable={}并在该函数中调用它。

+0

由于新的1.5组件语法,我想删除所有$范围。 –

+0

没有概率,我希望我明确了为什么你的外层'this'在函数内部不起作用。 –