angularjs $routeProvider - 找不到路由 [英] angularjs $routeProvider - route not found

查看:23
本文介绍了angularjs $routeProvider - 找不到路由的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 angularjs 和 requirejs.我遇到了一个问题,我的路由没有被正确路由.它不断路由到/.如果我将/post 更改为/:post,它会命中我的 post 路由.

I am using angularjs with requirejs. I am running into a problem where my routes are not being routed properly. It's constantly routing to /. If I change /post to /:post it hits my post route.

// module/post.js
define([], function () {
    'use strict';

    var app = angular.module('myApp.post', [])
    .config(['$routeProvider',
        function($routeProvider) {
            $routeProvider.when('/post', {
                    controller: 'PostController',
                    template: "<div>{{page}}</div>"
                }
            );
        }
    ]);

    return app;
});


// main.js
require.config({
    baseUrl: '/static/js',
    paths: {
        angular: 'vendor/angular/angular',
        jquery: 'vendor/jquery/jquery',
        _: 'vendor/underscore/underscore'
    },
    shim: {
        angular: {
            exports: angular
        }
    }
});

require([
    'module/post'
], function() {
    'use strict';

    var app = angular.module('myApp', [
        'myApp.post'
    ])
    .config(['$routeProvider',
        function($routeProvider) {
            $routeProvider.otherwise({
                redirectTo: '/'
            });
        }
    ]);

    $(function(){
        angular.bootstrap(document, ['myApp']);
        $('html').addClass('ng-app: myApp');
    });
});

推荐答案

我犯了愚蠢的错误.如果有人遇到这个问题,我会留下这个问题.

Dumb mistake on my part. I'll leave this question opened in case someone runs into this problem.

我没有打开 html5 模式

I did not have html5 mode on

var app = angular.module('myApp.post', [])
    .config(['$routeProvider', '$locationProvider',
        function($routeProvider, $locationProvider) {
            $routeProvider.when('/post', {
                    controller: 'PostController',
                    template: "<div>{{page}}</div>"
                }
            );
            $locationProvider.html5Mode(true);
        }
    ]);

否则我的网址会映射到 hashbanglocalhost/#post 而不是/post

otherwise my urls would map with hashbang localhost/#post instead of /post

这篇关于angularjs $routeProvider - 找不到路由的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆