我使用父子控制器使用状态是否正确?

时间:2014-10-24 21:50:34

标签: angularjs angular-ui-router ionic-framework

我的app.js中有这个

.state('tab.events', {
            url: "/events",
            views: {
                'tab-events': {
                    templateUrl: "templates/events/List.html",
                    controller: 'EventsListController'
                }
            }
        })

        .state('tab.events.details', {
            url: "/:eventId",
            views: {
                'tab-events': {
                    templateUrl: "templates/events/Details.html",
                    controller: 'EventDetailsController'
                }
            }
        })

这是List.html

...
                <ion-list>
                    <ion-item ng-repeat="event in all_events.models" type="item-text-wrap" ui-sref="tab.events-details({eventId:event.id})" class="item item-icon-right">
                    {{event.name}}
                    </ion-item>
                </ion-list>
... 

这是Details.html

<ion-view title="Event">
    <ion-content>    
        <div class="row">
            <div class="col">
                DETAILS HERE
            </div>
        </div>
    </ion-content>
</ion-view>

这是我的tabs.html

...
<ion-tab title="Events" icon="icon ion-calendar"  id="tab-events" ui-sref="tab.events">
                        <ion-nav-view name="tab-events" class="slide-left-right"></ion-nav-view>
                    </ion-tab>
...

单击某个事件时,它不会滑动到Details.html,但是当我将状态和ui-sref从 tab.events.details 更改为 tab.events-details <时/ strong>,它的工作原理。我是否正确地说,通过更改细节状态表明它不再是列表中的孩子?

1 个答案:

答案 0 :(得分:1)

这是一个老问题,但您是否尝试将标签好友更改为标签好友@ tab?

.state('tab.friends.detail', {
  url: '/:friendId',
  views: {
    'tab-friends@tab': {
      templateUrl: 'friend-detail.html',
      controller: 'FriendDetailCtrl'
    }
  }
})

应该有效。我的问题是,当你直接跳到这个URL时,没有后退按钮。