Комбо в теме дает мне трудное время, я уверен, что это простая ошибка где-то.Угловой, машинописный и угловой интерфейс с «контроллером как»
Контроллер:
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>
Но вид никогда не обновляется при возврате обратного вызова , Я предполагаю, что это либо проблема асинхронности, либо проблема с областью. Извлечение ресурса отлично работает, представление просто не обновляется. Кажется, я не могу установить эту работу из обратного вызова. Что мне здесь не хватает?
Вы видите '{{vm.job.Name}}' в представлении? Если это так, ваш код недействителен и должна произойти ошибка. Или вы просто видите 'Имя:'? – SjaakvBrabant
Я просто вижу Имя: Я думаю, что JS действителен. Я просто не могу установить this.job из обратного вызова ... Если я изменю свой код на использование $ scope и удалю «как vm», а затем в обратном вызове устанавливает $ scope.job все работает, но я хочу использовать синтаксис «this» – iCediCe
Не 'this.job = jobCall;' назначить $ prom? – segFault