使用URL

时间:2017-09-03 13:22:05

标签: angularjs angular-ui-router

.state('check', {
        url:'/check',
        templateUrl: 'views/List.html',
        controller: 'ListCtrl'

      })

$state.go('check')

有效但

location.href='/check'

没有。有了这个我得到:

 Cannot GET /check/

如果我重新加载页面,那么它也会导致无法解决GET错误,但只有在$state.go重定向

时才有效

我基本上希望能够在该URL被点击时加载页面,无论它是通过代码命中还是通过浏览器重新加载。浏览器重新加载似乎总是失败。

如何在重定向到网址时触发特定状态?

$locationProvider.html5Mode({
      enabled: true,
      requireBase: false
    });

启用了html5模式,因此url应该可以正常工作。

1 个答案:

答案 0 :(得分:0)

  

问:您在哪个组件中定义了$ locationProvider

     

A:控制器。

简短回答

最佳做法是将$stateProvider定义为module.config它将保证在任何模块控制器之前加载状态

app.config(['$locationProvider', '$stateProvider', '$urlRouterProvider',
function($locationProvider, $stateProvider, $urlRouterProvider) {
  // ...
}

在您的情况下,您在加载控制器之前调用URL,因此未定义任何状态。这就是您收到错误Cannot GET /check/

的原因

See References