feat(content): remember scroll of previous page

`content` directive stores scroll in view page history.

The history is passed down through $viewContentLoaded event, which is
broadcasted by navView directive when it loads a page.
This commit is contained in:
Andy Joslin
2014-02-04 08:46:40 -05:00
parent 479175bf5d
commit 2d1b71c8e2
10 changed files with 311 additions and 156 deletions

View File

@@ -270,6 +270,7 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu
terminal: true,
priority: 2000,
transclude: true,
controller: function() {}, //noop controller so this can be required
compile: function (element, attr, transclude) {
return function(scope, element, attr) {
var viewScope, viewLocals,
@@ -323,7 +324,7 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu
}
var newElement = angular.element('<div></div>').html(locals.$template).contents();
renderer().register(newElement);
var viewRegisterData = renderer().register(newElement);
// Remove existing content
renderer(doAnimate).leave();
@@ -342,7 +343,10 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu
element.children().data('$ngControllerController', controller);
}
link(viewScope);
viewScope.$emit('$viewContentLoaded');
var viewHistoryData = $ionicViewService._getView(viewRegisterData.viewId) || {};
viewScope.$broadcast('$viewContentLoaded', viewHistoryData);
if (onloadExp) viewScope.$eval(onloadExp);
newElement = null;