【问题标题】:what is the best way to create route for all static pages in AngularJS在AngularJS中为所有静态页面创建路由的最佳方法是什么
【发布时间】:2015-11-19 19:00:58
【问题描述】:

我从角度开始 我在为我的小项目创建路线时遇到问题

我以 json 格式获取菜单页面的名称

“家”“服务”“联系”等

我有一个现成的模板可以正确显示菜单

但我想为所有页面创建路由

看起来像这样:

本地主机/网站/服务

等等

我希望我的路由在 localhost/website/ 之后得到一个单词并返回模板并向服务器发送带有页面名称的请求以获取 json 内容

也就是说,我想创建一个他知道的路由,只获取url中的第一个参数

我该怎么做?

【问题讨论】:

  • 您使用.when() 创建路由。看起来您想要重定向?使用.otherwise({ controller: 'redirectController' })(这里不需要模板)。
  • 那么我该怎么做.when() 他得到一个可变参数的地方?它不是永久页面。用我知道的名字
  • Check out this example。不要使用redirectTo,而是使用controller: 'yourController。在yourController 中,注意将重定向到正确路由的逻辑。

标签: angularjs angular-ui-router ngroute


【解决方案1】:

你可以定义$states:

myApp
    .config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {

    $urlRouterProvider
        .otherwise('/');

    $stateProvider
        .state('myState', {
            url: '/:requestedService'
        });

现在,定义一个控制器:

myApp.controller('MyController', function($scope, $http) {

    // Whenever state change like: "http://localhost/home", "http://localhost/contact"
    $scope.$on('$stateChangeStart', function(event, toState, toParams) {
        if (toState.name == "myState") {
            $http({
                url: "/my-url",
                data: {serviceName: toParams.requestedService}
            }).then(function(data) {
                // your json data in "data"
            });
        }
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    相关资源
    最近更新 更多