我無法從預先載入組件控制器的ui路由器獲取解析數據(通過解析對象)。屬性顯示在組件的this
對象中,但所有屬性均未定義。這是爲什麼發生?我一直停留在這個現在一段時間...Angular 1.5 - UI-Router,解析Object返回未定義的值
這裏的組件:
.component('wLoans', {
template: require('./loans.html'),
controller: LoansController,
bindings: {
settings: '<',
labels: '<'
}
});
this.settings和this.labels出現,但他們是不確定的。當我在下面的resolve.settings console.log中,我可以看到承諾本身。在下面的承諾,value
包含返回的數據我想:
是我與UI路由器工作狀態:是從被呼叫的服務獲取功能
{
name: 'loans',
parent: 'app',
url: '/loans',
data: {
authRequired: true
},
views: {
content: {
template: '<w-loans></w-loans>'
}
},
resolve: {
labels(LabelService) {
'ngInject';
return LabelService.fetch();
},
settings(SettingsService) {
'ngInject';
console.log(SettingsService.fetch());
return SettingsService.fetch()
},
module($q, $ocLazyLoad, LabelService) {
'ngInject';
return $q((resolve) => {
require.ensure([], (require) => {
let mod = require('pages/loans');
$ocLazyLoad.load({ name: mod.name });
resolve(mod.name, LabelService.fetch());
}, 'loans');
});
}
}
}
這裏路線:
function fetch() {
// return $http.get(require('!!file!mocks/settings.json'), {
return $http.get(`${DEV_API_URL}/settings`, {
cache: settingsCache,
transformResponse: [
...$http.defaults.transformResponse,
transformResponse
]
})
.then(({ data }) => {
angular.extend(model, data);
settingsCache.put('store', model);
return model;
});
}
任何幫助表示讚賞!
更新:使用UI路由器1.0.0-beta.1
我使用的是測試版。讓我用那個信息更新我的問題 – devdropper87
太好了。然後直接使用你的組件是非常簡單的。甚至還有一個教程,涵蓋了beta文檔頁面中組件的處理方式:https://ui-router.github.io/tutorial/ng1/hellogalaxy –
嘿安德烈亞斯,關於這個問題的任何想法也涉及到UI路由器? HTTP://計算器。com/questions/39277446 /無法調用 - uicanexit-angular-ui-router-1-0-0-beta – devdropper87