小编tim*_*own的帖子

ui-router $ state.go VS ui-sref让我在AngularJS中疯狂

它通过ui-sref调用时有效

<a class="button" ui-sref="main.create">
Run Code Online (Sandbox Code Playgroud)

但是当使用ng-click和$ stage.go调用它时,它被调用并呈现页面但我的$ urlRouterProvider.otherwise将再次覆盖DOM.我在逐步调试时注意到了它.它可能认为main.create是一个不存在的url.

这是ng-click的代码和功能.

<a href="#" ng-click="create()">Create Object</a>
Run Code Online (Sandbox Code Playgroud)

这是create()函数

$scope.create = function() {
  $state.go('main.create');
};
Run Code Online (Sandbox Code Playgroud)

$state.go('main')ng-click="create()"使用时调用.但在调用之前$state.go('main'),我在DOM中看到了正确的main.create页面呈现.我编写了"IF"语句来处理不存在的url,以便将它们重定向回主页.这是我的config.js.

  .state('main', {
    url: '/',
    views: {
      '@': {
        templateUrl: 'app/main/main.html',
        controller: 'MainController'
      },
      'content@main' : {
        templateUrl: 'app/main/main.display.html'
      }
    }
  })

  .state('main.create', {
    url: '/create',
    views: {
      'content@main' : {
        templateUrl: 'app/main/main.create.html'
      }
    }
  })

  $urlRouterProvider.otherwise(function ($injector) {
  var Session = $injector.get('Session');
  var $state = $injector.get('$state');
  if (Session.isAuthenticated()) {
    $state.go('main'); // <-- this is …
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui-router

1
推荐指数
1
解决办法
2115
查看次数

标签 统计

angular-ui-router ×1

angularjs ×1