onsen ui - Parent controller module is not loaded after pop page through <ons-back-button> from a pushed page -
that's first question i´m afraid silly 1 have done lot of research before , spend many ours trying fix changing code. i´m relatively new web app programming , maybe missing conceptual knowledge can blocking me go forward.
environment , tools: using cordova, onsen ui, android studio, angularjs develop sort of engineer calculator on area of expertise, i´m not professional programmer.
the app based in series of pages connected in below user data/page flow , app working fine except problem i´m asking help.
(i cant post images yet)
it's dataflow this:
menu.html >> page1.html >> load.html
for every html page view have controller module, modules in same controller file. sliding menu defined in index.html calls page1.html instance, page having svg graphic linked load.html page through onclick push page. see below pages code:
menu.html
<body onload="onload()" ng-app="calcfcc" ng-controller="calcfcccontroller"> <!-- transfer start here --> <ons-sliding-menu menu-page="menu.html" main-page="page1.html" side="left" var="menu" type="reveal" max-slide-distance="200px" swipable="true"> </ons-sliding-menu> <!-- sliding-menu - menu list here!!! --> <ons-template id="menu.html"> <ons-page modifier="menu-page"> <ons-toolbar modifier="transparent"></ons-toolbar> <ons-list class="menu-list"> <ons-list-item class="menu-item" ng-click="menu.setmainpage('page1.html', {closemenu: true})"> <ons-icon icon="fa-home"></ons-icon> {{menu1}} </ons-list-item> page1.html called slide menu:
<ons-navigator animation="slide" var="page1navi"> <ons-page ng-controller="initcontroller" on-device-backbutton="backbuttonpage()" style="background: #001a00;"> <ons-toolbar fixed-style> <div class="left"> <ons-toolbar-button id="popoverb1" ng-click="menu.toggle()"> <ons-icon icon="ion-navicon" size="28px" fixed-width="false"></ons-icon> </ons-toolbar-button> </div> <div class="center"> {{pageheader1}} </div> <div class="right" style="padding: 7px;"> <img src="img/aasis78x31branco.png" alt="aasis" > </div> </ons-toolbar> page1.html portion calls load.html clickable svg icon:
<g id="g4533" onclick="page1navi.pushpage('load.html', { animation : 'slide' } )" transform="translate(0,-66.958368)"> <rect style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:srgb;color-interpolation-filters:linearrgb;solid-color:#000000;solid-opacity:1;fill:url(#lineargradient4485);fill-opacity:1;fill-rule:evenodd;stroke:#6e6e6e;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" id="rect10449" width="60" height="60" x="275.33713" y="786.85248" rx="6.7857499" ry="6.3835001" /> load.html page:
<ons-page ng-controller="loadcontroller"> <ons-toolbar> <div class="left"><ons-back-button>{{about1}}</ons-back-button></div> </ons-toolbar> <p class="textarea" style="font-size: 20px; border: 2px solid #0066ff; margin: 5px"> {{load1}} </p> so problem page1.html controller loading fine, load.html controller loading fine , making it's job when press load.html page "back" button return page1.html page1 controller not loaded , cant refresh view data have manipulated on load.html.
it's not global vars, right controller not loaded.
when called page1.html index.html works, can ask user side menu refresh. reload not option, annoying user.
any idea how solve this?
tks in advanced!!!!
controllers run once when page created. when use back-button destroying load.html , moving page1.html, 1 created in page stack controller won't called again. also, angularjs recognize changes if done inside angular's scope. otherwise need use $scope.$apply() let angular know changes. use $scope.$apply() on onsen ui's postpop event.
in case, if using angularjs think should have ng-click instead of onclick. also, can bind text-area scope variable using ng-model, every change in view stored automatically. think should enough these 2 changes.
hope helps!
Comments
Post a Comment