Kafamı bu şekilde saramam, ui-route
ve $stateChangeSuccess
ve ve $watch
ile mücadele ediyorum, iki sorunla karşılaştım. Bir parametrenin değerini değiştirmeye çalışıyorum, state
değiştirdiğimde, bir URL'yi tıklatın. Alt devletleri kullandığımı bilmek çok önemli. Şu anki kurulumumla, $stateChangeSuccess
'un yükte iki kez tetiklenmesini sağlıyorum, yani değeri hemen ayarlar. Yapmaya çalıştığım şey, yalnızca URL’yi değiştirmeye ayarlanmış olması.
Benim rota şöyle, ben init
üzerinde açıkça false
için openSesame
parametresini ayarlamak nerede, şu var bir parametre benim denetleyicisi
.state('medications', {
url: '/medications',
templateUrl: '/partials/home.html',
controller: 'mainController',
params: { showSection: false },
resolve: {
postPromise: ['medicationservice', function(medicationservice) {
return medicationservice.getAll();
}]
}
})
.state('medications.add', {
url: '/add',
templateUrl: '/partials/home.html',
controller: 'mainController',
params: { showSection: true },
})
değerini ayarlamak için çalışıyoruz, ancak ediyorum Bunu tetikler ve true
olarak ayarlar.
mainModule.controller('mainController', [
'$scope',
'$state',
'$rootScope',
'medicationservice',
function($scope, $state, $rootScope, medicationservice) {
$scope.medication = {};
$scope.medications = medicationservice.posts;
$scope.openSesame = false;
$rootScope.$on("$stateChangeSuccess", function() {
$scope.openSesame = true;
console.log($scope.openSesame);
});
}]);
in my plunker durum değişikliği Ben $rootScope
kullanırsanız yani kez çalışır.
Durum değişikliği için 'showSection' parametresini değiştirmek ister misiniz? – inspired
Yea, temelde "showSection" parametresini kullanmak istiyorum: $ scope.openSesame '@inspired –
güncellenmiş yanıtıma ve [plunker] ok loot'una (https://plnkr.co/edit/zQxIhI6GKmKBY1bn4WSf?p=preview) – inspired