2015-05-13 18 views
5

yeniden başlatmak. $rootScope.roomId değişken, yeniGroupCtrl denetleyicisinde düzgün şekilde başlatıldı.angularjs Ben tanımı gibidir newGroupCtrl adında bir denetleyici var kontrolörü

Bu new_group sayfasından, başka bir sayfaya gidiyorum. Ve bu sayfaya geri dönüp $window.location.href = ('#/new_group'); numaralı telefonu arayarak $rootScope.roomId yeniden başlatılamıyor, bunun yerine eski değeri hala var. NewGroupCtrl'nin durumu korunur.

YeniGroupCtrl'i nasıl tamamen yeniden başlatabilirim?

+0

GetRoom() ne yapar? kod detaylarını paylaşabilir misiniz? –

+0

getRoom kodunu da ekledim – Ozgen

+1

UI yönlendiricisini kullandığınızdan, $ state hizmetiyle birlikte gitmelisiniz. $ State.go ('new_group'); – Okazari

cevap

5

URL, tarayıcıya reloadtrue gibi reload: true ekleyerek ekleme seçeneği eklendiğinde her seferinde.

yerine rota değişiklikleri ui-router tarafından tanıyacağı sağlayacaktır $window.location.href = ('#/new_group'); yapmanın $state.go('new_group') kullanmalıdır

.state('new_group', { 
    url: '/new_group', 
    templateUrl: 'templates/new_group.html', 
    controller: 'newGroupCtrl', 
    reload: true //will reload controller when state is being access 
}); 

Kodu. Eğer İon Framework (İyi İş) kullandığımız için buraya

aynı SO answer

0

gelen kontrolörü çıkarın:

.state('new_group', { 
    url: '/new_group', 
    templateUrl: 'templates/new_group.html', 
}) 

Ve benzeri sayfanın ana etiketi ile "new_group.html" sayfasında denetleyicisi ekleyin: Sen denetleyicisi yeniden state söylememe gerek

<div ng-controller="newGroupCtrl"></div> 
+1

Bu hacky çözümü gibi görünüyor ..: p –

2

, bunu yapabilirsiniz: (İyonik Çerçeve için)

.state('new_group', { 
    url: '/new_group', 
    templateUrl: 'templates/new_group.html', 
    cache: false 
}) 
kullanmak
.controller('YourCtrl', function($ionicView){ 
    $ionicView.enter(function(){ 
    //code that you want to run, each time the view is active 
    }); 
}); 
İlgili konular