【发布时间】:2025-11-30 08:55:01
【问题描述】:
我正在尝试让 AngularJS 的 UI-Router 获取已定义的状态(即“项目”),如果没有匹配,则默认为“根”状态。 “根”状态应使用远程 API (Firebase) 检查并根据结果加载适当的视图。
下面的例子没有满足这些要求:
1) “http://website.com/project”匹配“根”状态,而不是(之前定义的)“项目”状态。
2)“templateUrl”函数中没有定义“fbutil”,不能注入。
请帮我解决这些问题。
angular.module('app')
.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('project', {
url: '/project',
views: {
'mainView': {
controller: 'ProjectCtrl as project',
templateUrl: '/views/project.html'
}
}
})
.state('root', {
url: '/:id',
views: {
'mainView': {
templateUrl: function($stateParams, fbutil) {
var ref = fbutil.ref('user_data', id);
ref.once('value', function(dataSnapshot) {
return '/views/' + dataSnapshot.$val() +'.html';
}, function(error) {
return '/views/root.html';
});
}
}
}
})
}
]);
【问题讨论】:
标签: javascript angularjs angular-ui-router firebase state