如何使用Angular Js中的ui-sref将位置从一个状态更改为另一个状态?

时间:2016-12-17 07:05:55

标签: angularjs angular-ui-router

我有州

 .state('main', {
              url: '/',
              template: '<div ui-view=""></div>'
             })
 .state('main.header', {
                url: 'header',
                templateUrl: 'modules/core/views/header.html'
           })

 .state('main.header.sidemenu', {
                url: '/sidemenu',
                templateUrl: 'modules/admin/views/adminsidemenu.html'
            })
 .state('main.header.sidemenu.businesslist', {
               url: '^/business/businesslist',
               templateUrl:'modules/business/views/business.list.view.html',
        })
  .state('main.header.sidemenu.tabs', {
               url: '',
               templateUrl:'modules/business/views/tabs.business.view.html',
          })
 .state('main.header.sidemenu.tabs.profile', {
               url: '^/business/profile',
               templateUrl:'modules/business/views/tabs.business.view.html',
          })

mytml中的html代码 - &gt; main.header.sidemenu.tabs.profile - &gt;模板

<li>
  <a href="javascript:void(0)"
     ui-sref="main.header.sidemenu.businesslist">XXXXX</a>
</li>

当我点击锚点

时,它会抛出错误无法从状态 - &gt; main.header.sidemenu.tabs 解析'branchUrl'

如何解决这个问题。 你能帮帮我吗?

2 个答案:

答案 0 :(得分:0)

如果未定义branchUrl状态,则会发生此错误。请检查state配置,确保branchUrl在那里。

答案 1 :(得分:0)

这种错误通常意味着,(js)代码的某些部分未加载。 ui-sref内部的状态缺失。您不需要指定父级,状态以面向文档的方式工作,而不是指定parent:main,您只需将状态更改为main.header

.config(function($stateProvider, $urlRouterProvider){
    $urlRouterProvider.otherwise("/main.html");

$stateProvider.state('app', {
  abstract: true,
  templateUrl: "url"
});
$stateProvider.state('main', {
    url: '/main',
    templateUrl: "url1"
});
$stateProvider.state('main.header', {
    url: '/main/header',
    templateUrl: "url2"
});

$stateProvider.state('main.header.sidemenu', {
    url: "/main/header/sidemenu",
    templateUrl: "url 3"
});
$stateProvider.state('main.header.sidemenu.businesslist', {
    url: "/main/header/sidemenu/businesslist",
    templateUrl: "url 4"
});

对于深度嵌套,您需要定义所有状态。希望它会帮助你