我有一个包含多个图片的图库。
单击图像时,会转到单个视图。
点击back
按钮后,它会进入图库,但用户体验不佳 - 所有图片都会重新加载!
观察加载转到Chrome Dev Tools
并启用Network Throttling
(占位符图片不是最佳示例,因为它们几乎瞬间加载)
我知道为了保留控制器的状态,我可以使用服务,而这正是我正在做的事情:http://jsbin.com/doneqoruta/edit?html,output
app.service("files", function() {
return [
"350x150",
"450x150",
"550x150",
"650x150",
"750x150",
"850x150",
"350x150",
"450x150",
"550x150",
"650x150",
"750x150",
"850x150",
];
})
app.controller("ListCtrl", function($scope, files) {
console.log("LIST CTRL");
$scope.files = files;
});
相关问题:Maintain model of scope when changing between views in AngularJS
将files
放入$rootScope
对我有用,正如此答案所示:https://stackoverflow.com/a/12961220/775359来自Mark Rajcok
$ rootScope是一个很大的全局变量,适用于一次性事物或小型应用程序。
使用$rootScope
的非闪烁版本:
app.controller("ListCtrl", function($rootScope, files) {
console.log("LIST CTRL");
if (!$rootScope.files) {
$rootScope.files = files;
}
});
是否有更好,更有棱角的方式?
在Ionic中有$ionicView.enter
并且通过提出这个问题,我希望通过知识扩展。
更新
来自localhost的{p> 5秒视频:https://youtu.be/HU94T6RtEf8 (点击返回时我宁愿顺利过渡,我认为$rootScope
可能就是这样)