问题描述
app--- a--- a.index.html b--- b.index.html
b.index.html<a ui-sref='a.index'>show a.index.html</a><p ui-view></p>
怎样让ui-view这个p显示的是a.index.html?
ui-view默认读的是哪里的?ui-view是由哪里控制的?
而且 ui-sref 编译后那个 a 标签没有 href 属性
问题解答
回答1:angular.module('mainApp') .config(function ($stateProvider, $urlRouterProvider) {$stateProvider .state('a', {url: ’/a’,templateUrl: ’app/a/a.html’ }) .state('b', {url: ’/b’,templateUrl: ’app/b/b.html’ })app/index.html:....<p ui-view></p>....
ui-router是通过state进行页面跳转控制的,具体来说,当一个页面加载了ui-router及其相关router配置后(上面的示例代码),会跟据地址栏的url加载对应的模板,比如上文,如果访问了/a这个路径,ui-router会知道这个/a路径对应a这个state,他的模板是app/a/a.html,之后就会加载这个模板,并把它塞到ui-view这个directive的位置(这么说可能不是很恰当,因为state可以继承,view也可以有嵌套,这扯得就远了)
建议还是好好看看ui-router的wiki