我需要多个ui-views
一个URL
(我的主页)。 ui-routing
的限制是我不能拥有多个<div ui-view></div>
,但它们必须处于嵌套状态。
<div class="left-div">
<div ui-view></div>
<button ui-sref="1"></button>
<button ui-sref="2"></button>
<button ui-sref="3"></button>
</div>
<div class="right-div">
<button ui-sref="3"></button>
<div ui-view></div>
</div>
如何制作,以便ui-sref=1
和ui-sref=2
更新内部ui-view
:
<div class="left-div"></div>
和ui-sref = 3将更新<div class="right-div"></div>
我在使用ui-router时遇到的问题是,ui-sref
从1 -> 3
或2 -> 3
进行更改后,ui-view
的{{1}}将会消失,因为left-div
更改。URL
我该如何处理?
编辑 - 我当前的状态视图
chatApp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home')
$stateProvider
.state('friend', {
url: '/friend',
templateUrl: 'friend.html'
})
.state('group', {
url: '/group',
templateUrl: 'group.html'
})
.state('search', {
url: '/search',
templateUrl: 'search.html'
})
.state('home', {
url: '/search',
templateUrl: 'search.html'
})
.state('public', {
url: '/public',
views: {
'publicView': { templateUrl: 'private-chat.html' }
}
});
&#13;
<div class="col-md-3 left-col-friends" ng-controller="friendListCtrl">
<div class="friends-list-navigation">
<div class="option-wrapper">
<div class="col-xs-3 home-option" ui-sref="public"><i class="fa fa-home fa-2x"></i></div>
<div class="col-xs-3 friend-option" ui-sref="friend"><i class="fa fa-user fa-2x"></i></div>
<div class="col-xs-3 group-option" ui-sref="group"><i class="fa fa-users fa-2x"></i></div>
<div class="col-xs-3 search-option" ui-sref="search"><i class="fa fa-search fa-2x"></i></div>
</div>
</div>
<div class="friends-list-display">
<div ui-view></div>
</div>
</div>
<div class="col-md-9 middle-col-chat" ng-controller="publicCtrl">
<div class="bubble-frame-public">
<div ui-view="publicView"></div>
</div>
<div class="input-fields-wrapper" emoji-form emoji-message="emojiMessage">
<div class="col-md-8">
<textarea class="col-md-4" id="messageInput" ng-model="emojiMessage.messagetext"></textarea>
</div>
<div class="col-md-3">
<button class="btn btn-default btn-send-public-msg" ng-click="emojiMessage.replyToUser()"><i class="fa fa-paper-plane"></i></button>
<button class="btn btn-default" id="emojibtn">
<i class="fa fa-smile-o"></i>
</button>
<button class="btn btn-default"><i class="fa fa-video-camera"></i></button>
</div>
</div>
</div>
&#13;
答案 0 :(得分:0)
我猜测publicView
是您希望在其他观看次数发生变化时保持不变的观点。这是解决问题的一种方法。
$stateProvider
.state('home', {
url: '/home',
views: {
'@': {
templateUrl: 'search.html'
},
'publicView@': {
templateUrl: 'private-chat.html'
}
}
})
.state('home.friend', {
views: {
'@': {
templateUrl: 'friend.html'
}
}
})
.state('home.group', {
views: {
'@': {
templateUrl: 'group.html'
}
}
});
默认网址为/home
。访问后,publicView
将填充private-chat.html
,未命名的ui-view
将填充search.html
。
对于friend
和group
州,他们单独publicView
,不使用新网址,这是我认为你想要的。这是通过使它们成为home
的子状态并通过明确指出应该改变哪些视图来实现的。