【问题标题】:ui-router dosn't work with $urlRouterProvider.otherwiseui-router 不适用于 $urlRouterProvider.otherwise
【发布时间】:2018-01-30 09:36:16
【问题描述】:

我有 AngularJs 1.x 的 ui-router 版本 1.0.11

我的问题:

当用户输入一个不在我的路由中的地址,例如:/url/abcdef,然后用户喊叫自动重定向到 /products。这没关系,但我有一个问题,路由器中的参数链接,在同一产品页面中不起作用。例如,我单击产品名称,然后我将重定向到 /products。没有 $urlRouterProvider.otherwise('/customers');路由器中的链接正常,但我没有用于 /url/rtrtrt 等页面的路由器

我的路由器代码:

    var app = angular.module("productsApp", [
  "ui.router"

]);

app.config([
  "$stateProvider",
  "$urlRouterProvider",
  "$locationProvider",
  function($stateProvider, $urlRouterProvider, $locationProvider) {

    $urlRouterProvider.otherwise('/products');

    $stateProvider
      .state("home", {
        url: "/products",
        templateUrl: "/products.html",
        controller: "MainCtrl",

        resolve: {
          getAllP: function($http) {
            return $http.get("/products/get").then(function(res) {
              return res.data;
            });
          }
        }
      })

      .state("det", {
        url: "details/:pId/details",
        templateUrl: "p_details.html",
        controller: "productDetailCTRL",

        resolve: {
          prDet: function($http, $stateParams) {
            return $http
              .get("/products/id/" + $stateParams.pId + "/details")
              .then(function(res) {
                return res.data;
              });
          }
        }
      });

    $locationProvider.html5Mode(true);
    $locationProvider.hashPrefix("!");
  }
]);

更新:我尝试使用错误页面 error.html 设置另一个状态 /error。 产品页面中存在相同的错误。我点击产品,这会将我重定向到 /error 页面!!!我不明白为什么

【问题讨论】:

  • 为什么声望为-1?我不明白。我在问一个问题,但我没有在任何地方找到解决方案

标签: javascript angularjs angular-ui-router


【解决方案1】:

你失败了代码的位置 你必须模式移动$urlRouterProvider.otherwise(**'home'**);

    var app = angular.module("productsApp", ["ui.router"]);

    app.config(["$stateProvider","$urlRouterProvider","$locationProvider",
        function($stateProvider, $urlRouterProvider, $locationProvider) {


            $stateProvider
            .state("home", {
                url: "/products",
                templateUrl: "/products.html",
                controller: "MainCtrl",

                resolve: {
                    getAllP: function($http) {
                        return $http.get("/products/get").then(function(res) {
                            return res.data;
                        });
                    }
                }
            })

            .state("det", {
                url: "details/:pId/details",
                templateUrl: "p_details.html",
                controller: "productDetailCTRL",

                resolve: {
                    prDet: function($http, $stateParams) {
                        return $http
                        .get("/products/id/" + $stateParams.pId + "/details")
                        .then(function(res) {
                            return res.data;
                        });
                    }
                }
            });

            $urlRouterProvider.otherwise('home');

            $locationProvider.html5Mode(true);
            $locationProvider.hashPrefix("!");
        }
]);

【讨论】:

  • 我在 stackoverflow 发帖之前试过这个,但是没有用。
猜你喜欢
  • 2014-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 1970-01-01
  • 2017-02-26
  • 1970-01-01
相关资源
最近更新 更多