如何在 Ionic 中使用带有抽象状态参数的选项卡/清除导航缓存
How to use tabs in Ionic with a abstract state parameter / clear cache on navigation
我有一个包含群组列表的主屏幕。每个列表项 links 到具有参数(gid,来自 groupid)的相同抽象状态。
.state('group', {
url: "/group/:gid",
abstract: true,
templateUrl: "templates/group.html"
})
.state('group.members', {
url: '/members',
views: {
'group-members': {
templateUrl: 'templates/group-members.html',
controller: 'MemberCtrl'
}
}
})
.state('group.events', {
url: '/events',
views: {
'group-events': {
templateUrl: 'templates/group-events.html',
controller: 'EventCtrl'
}
}
})
.state('group.settings', {
url: "/settings",
views: {
'group-settings': {
templateUrl: "templates/group-settings.html",
controller: 'SettingsCtrl'
}
}
})
在那个抽象状态下,我有 3 个选项卡应该在同一个 parameter/group 上工作。虽然这适用于我从主屏幕 link 到的选项卡,但其他选项卡会记住它们的历史记录,并且在返回到主屏幕并选择另一个组后,只有 linked 到选项卡显示正确组的详细信息。其他选项卡将显示先前(缓存的)组的详细信息。
我认为这可能会通过清除某个地方的缓存来解决,但理想情况下我不想每次都为每个选项卡清除它。在同一组中的选项卡之间导航时,应使用缓存。只有在返回主屏幕并选择新组后,才应清除选项卡的缓存。
另一种方法可能是以某种方式让其他视图知道已选择了一个新组。对于 linked 的选项卡很容易:参数在 url 中给出。但其他人不会从主屏幕 linked 到。有没有办法在模板文件中将参数传递给 ion-tabs?
实现此功能的最佳方法是什么?这一定是一个不时发生的用例,我怀疑有一种首选的处理方式。我正在使用 Ionic 1.0.0。谢谢
使用这种方式清除ionic中的缓存
<ion-view cache-view="false" view-title="My Title!"> ... </ion-view>
group-members
视图正在更新,但 groups
视图的其余部分已过时。通过将 cache: false
添加到下面代码笔中的状态,它工作正常。
javascript
.state('group', {
url: "/group/:gid",
abstract: true,
cache: false,
templateUrl: "templates/group.html"
})
另见 http://ionicframework.com/docs/api/service/$ionicHistory/
的 $ionicHistory.clearCache()
我有一个包含群组列表的主屏幕。每个列表项 links 到具有参数(gid,来自 groupid)的相同抽象状态。
.state('group', {
url: "/group/:gid",
abstract: true,
templateUrl: "templates/group.html"
})
.state('group.members', {
url: '/members',
views: {
'group-members': {
templateUrl: 'templates/group-members.html',
controller: 'MemberCtrl'
}
}
})
.state('group.events', {
url: '/events',
views: {
'group-events': {
templateUrl: 'templates/group-events.html',
controller: 'EventCtrl'
}
}
})
.state('group.settings', {
url: "/settings",
views: {
'group-settings': {
templateUrl: "templates/group-settings.html",
controller: 'SettingsCtrl'
}
}
})
在那个抽象状态下,我有 3 个选项卡应该在同一个 parameter/group 上工作。虽然这适用于我从主屏幕 link 到的选项卡,但其他选项卡会记住它们的历史记录,并且在返回到主屏幕并选择另一个组后,只有 linked 到选项卡显示正确组的详细信息。其他选项卡将显示先前(缓存的)组的详细信息。
我认为这可能会通过清除某个地方的缓存来解决,但理想情况下我不想每次都为每个选项卡清除它。在同一组中的选项卡之间导航时,应使用缓存。只有在返回主屏幕并选择新组后,才应清除选项卡的缓存。
另一种方法可能是以某种方式让其他视图知道已选择了一个新组。对于 linked 的选项卡很容易:参数在 url 中给出。但其他人不会从主屏幕 linked 到。有没有办法在模板文件中将参数传递给 ion-tabs?
实现此功能的最佳方法是什么?这一定是一个不时发生的用例,我怀疑有一种首选的处理方式。我正在使用 Ionic 1.0.0。谢谢
使用这种方式清除ionic中的缓存
<ion-view cache-view="false" view-title="My Title!"> ... </ion-view>
group-members
视图正在更新,但 groups
视图的其余部分已过时。通过将 cache: false
添加到下面代码笔中的状态,它工作正常。
javascript
.state('group', {
url: "/group/:gid",
abstract: true,
cache: false,
templateUrl: "templates/group.html"
})
另见 http://ionicframework.com/docs/api/service/$ionicHistory/
的 $ionicHistory.clearCache()