Axs*_*ech 1 javascript model-view-controller scope controller angularjs
我试图在控制器内部使用带有角度函数(特别是$ http.get)的"this"时遇到问题.
例:
Javascript-(伪代码)
...
.controller('testController')
{
$http.get(data)
{
this.Stuff = data;
}
}
...
Run Code Online (Sandbox Code Playgroud)
HTML的
<div ng-controller='testController as test'>
{{test.Stuff}}
</div>
Run Code Online (Sandbox Code Playgroud)
当试图访问html中的test.Stuff时,它是空的.
我知道有一个范围问题,但是我不能在$ http函数中访问控制器的'this'吗?
您会注意到this成功回调内部是指window(全局对象).使用window上下文作为上下文调用成功回调,因为作为函数上下文的window对象调用不是其他函数成员的函数.如果要this引用控制器实例,则必须将该上下文绑定到该函数.您可以使用angular.bind来完成此任务.
.controller('testController')
{
$http.get(data).success(angular.bind(this, function(data) {
this.Stuff = data;
}));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1131 次 |
| 最近记录: |