gpt4 book ai didi

javascript - AngularJS 为同一个 URL 路由多个 ui View ?

转载 作者:行者123 更新时间:2023-11-28 06:51:03 25 4
gpt4 key购买 nike

我需要多个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=1ui-sref=2将更新ui-view里面:

<div class="left-div"></div>

和 ui-sref=3 将更新 <div class="right-div"></div> 内的 ui-view

我在使用 ui-router 时遇到的问题是从 ui-sref 进行更改后来自1 -> 32 -> 3 ui-viewleft-div将会消失,因为URL变化。

我该如何解决这个问题?

编辑-我当前的状态 View

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' }
}
});
  <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>

最佳答案

我猜测 publicView 是您希望在其他 View 发生变化时保持不变的 View 。这是解决这个问题的一种方法。

$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'
}
}
});

默认 URL 为 /home。访问时,publicView 会填充 private-chat.html,未命名的 ui-view 会填充 search.html.

对于friendgroup状态,他们单独保留publicView并且他们不'不要使用新的网址,我认为这就是您想要的。这是通过使它们成为 home 的子状态并绝对指定应该更改哪些 View 来实现的。

关于javascript - AngularJS 为同一个 URL 路由多个 ui View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32960779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com