[英]Angular, Typescript and Angular UI with “controller as”
主題中的組合讓我很難受,我敢肯定這是一個簡單的錯誤。
控制器:
class JobCtrl {
job: Object;
public $inject = ['$log', '$resource', 'ApiDataEndpoint', '$stateParams'];
constructor(public $log, public $resource, public ApiDataEndpoint, public $stateParams ) {
var JobRes = $resource(ApiDataEndpoint.url+'job/:id', {});
var jobCall = JobRes.get({ id: $stateParams.id},function(){
this.job = jobCall;
})
}
}
路由的定義如下:
.state('app.job', {
url: '/jobs/:id',
views: {
'menuContent': {
templateUrl: 'templates/job.html',
controller: 'JobCtrl',
controllerAs: 'vm'
}
}
})
在我看來,我得到了:
<p>
Name: {{vm.job.Name}}
</p>
但是,當回調返回時,視圖永遠不會更新。 我猜這是一個異步問題或范圍問題。 獲取資源的工作原理完美,視圖永遠不會更新。 看來我無法在回調中設置此作業。 我在這里想念什么?
我認為您可以執行以下操作(未經測試):
var jobCall = JobRes.get({ id: $stateParams.id},function(response){
job = response.data;
})
這在實現方法的回調函數中不可用。 更改為使用lambda,它將是:
由此:
var jobCall = JobRes.get({ id: $stateParams.id},function(){
this.job = jobCall;
})
對此:
var jobCall = JobRes.get({ id: $stateParams.id}, (response) => {
this.job = response.data;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.