繁体   English   中英

AngularJS路由在引导期间不起作用,此后起作用

[英]AngularJS routing not working during bootstrap, works after that

我已经在这上待了几天,我觉得我缺少一些东西。 我想创建一个webapp并开始设置我的angularjs基础。 在设置我的angularjs基础时,我遇到了路由问题。 这个问题看起来像是种族问题,但我似乎找不到它所在的位置。

启动我的angularjs网站时,路由无法正常工作。 甚至放$location.path("/dashboard"); 在module.run中没有显示正确的视图。 但是,在加载网站后转到浏览器的地址栏并删除“#/ dashboard”中的“ dashboard”时,它会将我重定向到“#/ dashboard”并显示正确的视图。 引导我的有角度的webapp时,路由似乎不起作用。

我尝试了ngRouteUI-Router 两者导致相同的结果。

github上的 Webapp

问题

应用程式:

require(['angular', 'ui-router'], (angular) => {
angular.module('monetaryreign.services', []);
angular.module('monetaryreign.ui', []);
var app = angular.module('monetaryreign', ['ui.router', 'monetaryreign.services', 'monetaryreign.ui']);

app.run(startup)

startup.$inject = ['$location'];

function startup($location) {
    $location.path("/dashboard");
}

require(['angular', 'app/app.states'], (angular) => {
    angular.bootstrap(document, ['monetaryreign']);
});
});

app.states.ts:

import angular = require('angular');
import dashboard = require('app/dashboard/dashboard.controller');

function routes($stateProvider: ng.ui.IStateProvider, $urlRouterProvider: ng.ui.IUrlRouterProvider) {
var f = dashboard
var baseUrl = document.getElementById('base-url').getAttribute('value');

$stateProvider
    .state('dasboard', {
        url: '/dashboard',
        templateUrl: baseUrl + 'app/dashboard/dashboard.html',
        controller: 'DashboardController',
        controllerAs: 'vm'
    })

$urlRouterProvider.when('', '/dashboard');

$urlRouterProvider.otherwise('/dashboard');
}

routes.$inject = ['$stateProvider', '$urlRouterProvider'];

angular
.module('monetaryreign')
.config(routes);

尝试删除此行。

app.run(startup)

startup.$inject = ['$location'];

function startup($location) {
    $location.path("/dashboard");
}

还有这个

$urlRouterProvider.when('', '/dashboard');

应该管用

您应该将$urlProvider.html5mode(true)添加到应用程序配置中,并将标记<base href="/">到HTML的头部。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM