Reputation: 547
when I call $state.go($state.current, {}, {reload: true}); in my controller my header disappears
if I comment this out, the header does not disappear, but then I don't have the desired affect of my view updating
its not hidden, its completely removed from the DOM
the code below is a function that uses a cordova plugin to invoke a native sdk, after the sdk completes, it returns to the javascript layer, the header is there then when it hits $state.go($state.current, {}, {reload: true}); the header goes away
function miSnapCheckFront(){ //get image of front of check
MiSnapPlugin.captureCheck('front', success, error);
function success(data){
depositService.checkObj.frontImage = data.EncodedImage;
depositService.checkObj.frontImageOriginal = data.OriginalImage;
$state.go($state.current, {}, {reload: true});
}
function error(err){
navigator.notification.alert('MiSnap is Cancelled check scan: ' + err, onClose, 'Scan Error', 'Close');
function onClose(){}
}
}
<ion-view hide-back-button="true" can-swipe-back="false" view-title="{{vm.title}}">
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-ios-close-empty" data-ng-click="vm.cancelCheck()"></button>
</ion-nav-buttons>
<ion-content>
<form name="vm.captureCheckForm" novalidate>
<div class="list-borderless">
<div class="card">
<!-- Memo -->
<label class="item item-input" ng-cloak>
<span class="input-label">Memo</span>
<input type="text" name="memo" data-ng-model="vm.memo" placeholder="Check Memo" data-ng-change="vm.checkMemoChange()">
</label>
</div>
<!-- Scan Check Front Button -->
<div class="card" data-ng-click="vm.miSnapCheckFront()">
<div class="item item-text-wrap" data-ng-class="{'lightest-yellow-bg': vm.frontImage === 'error'}">
<div class="item item-icon-right" data-ng-class="{'lightest-yellow-bg': vm.frontImage === 'error'}">
<h2 data-ng-show="vm.frontImage === null || vm.frontImage === 'error'">Capture Check Front</h2>
<img class="capture-check-thumbnail ng-hide" data-ng-show="vm.frontImage !== null" data-ng-src="{{'data:image/jpeg;base64,' + vm.frontImage}}"><!-- {{'data:image/jpeg;base64,' + vm.frontImage}} -->
<i class="icon ion-ios-camera-outline positive ng-hide" data-ng-show="vm.frontImage === null"></i>
<i class="icon fa fa-check-circle-o balanced ng-hide" data-ng-show="vm.frontImage !== null"></i>
</div>
</div>
</div>
<!-- Scan Check Back Button -->
<div class="card" data-ng-click="vm.miSnapCheckBack()">
<div class="item item-text-wrap" data-ng-class="{'lightest-yellow-bg': vm.rearImage === 'error'}">
<div class="item item-icon-right" data-ng-class="{'lightest-yellow-bg': vm.rearImage === 'error'}">
<h2 data-ng-show="vm.rearImage === null || vm.rearImage === 'error'">Capture Check Back</h2>
<img class="capture-check-thumbnail ng-hide" data-ng-show="vm.rearImage !== 'error' && vm.rearImage !== null" data-ng-src="{{'data:image/jpeg;base64,' + vm.rearImage}}"><!-- data:image/jpeg;base64, -->
<i class="icon ion-ios-camera-outline positive" data-ng-hide="vm.rearImage !== null"></i>
<i class="icon fa fa-check-circle-o balanced ng-hide" data-ng-show="vm.rearImage !== 'error' && vm.rearImage !== null"></i>
<i class="icon ion-ios-reverse-camera-outline energized ng-hide" data-ng-show="vm.rearImage === 'error' && vm.rearImage !== null"><span class="rescan-text">Rescan</span></i>
</div>
</div>
</div>
</div>
</form>
</ion-content>
<!-- Footer -->
<div class="bar bar-footer royal-bg stable" >
<a class="title" data-ng-click="vm.submitCheck(vm.captureCheckForm.$error)">
<span ng-if="vm.type === 'SINGLE'">Submit Check</span>
<span ng-if="vm.type === 'MULTIPLE'">Add Check</span>
</a>
</div>
Upvotes: 0
Views: 1578
Reputation: 11
I fixed this with the next code:
$state.go($state.current, {}, {reload: false})
.then(function(){
setTimeout(function() {
$window.location.reload(true);
});
})
Upvotes: 1
Reputation: 95
You can add following code in angular.run()
$rootScope.$on('$ionicView.enter', function(e) {
$ionicNavBarDelegate.showBar(true);
});
Upvotes: 1