ui.router不工作。不确定发生了什么

时间:2014-08-19 03:32:42

标签: angularjs angular-ui

我正在尝试用ui-router替换ngRoute,以便我可以使用多个视图

在我的模板文件中,我有<div ui-view></div>

然后在我的app文件中

angular.module('myApp', [
    'ui.router',
    //'signup',
    'myApp.controllers',
    'myApp.filters',
    'myApp.services',
    'myApp.directives'
]).config(function($stateProvider, $urlRouterProvider, $locationProvider) {
        $urlRouterProvider.otherwise({
            redirectTo: '/'
        });

        $stateProvider.
            state('/', {
                url: '/',
                templateUrl: '/partials/homepage',
                controller: 'MyCtrl1'
            }).
            state('about.detail', {
                url: '/about/:id',
                templateUrl: function(params){
                    return '/partials/about/'+params.id
                },
                controller: 'MyCtrl1'
            }).
            state('funnel', {
                url: '/funnel',
                templateUrl: '/partials/funnel',
                controller: 'MyCtrl2'
            });

        $locationProvider.html5Mode(true);
    });

出于某种原因,如果我直接去/漏斗

,这些路线就没有了

如果我转到localhost:3000 / funnel?

,我是否可以通过此设置获取路线?

1 个答案:

答案 0 :(得分:0)

因为您使用的是html5mode而不是hashbang,所以您需要在.htaccess中添加重定向,以便将所有内容发送回根index.html。没有它,您正试图找到一个不存在的目录。这是我使用的:

RewriteEngine   On
RewriteBase     /
RewriteCond     %{REQUEST_URI} !^(/index\.php|/img|/js|/css|/robots\.txt|/favicon\.ico)
RewriteCond     %{REQUEST_FILENAME} !-f
RewriteCond     %{REQUEST_FILENAME} !-d
RewriteRule     . /index.html [L]