2013-11-28 31 views
5

İç içe geçmiş durumlarım var, ebeveyn ve alt durumu ayrı bir denetleyiciye sahip. Ama sadece ana devlet idam ediliyor.İç içe geçmiş durumdaki denetleyici yürütülüyor

Ben url yapıya sahiptir: #/restoran/2/Yani

, sanırım bu bizim gıda 'İçerik ardından kimliği 2 ve çocuk kontrolör yükü restoran yüklemek istediğiniz bizim gıda ve diğer bazı fonksiyonlara dikkat edin.

My kodudur:

var app = angular.module("app", ['ui.router']); 
app.config(function ($stateProvider, $urlRouterProvider) { 
$urlRouterProvider.otherwise("/"); 

$stateProvider 
      .state('home', { 
       url: '/', 
       controller: function($scope, $stateParams) { 
         $scope.setRestaurant(0); 
       } 
      }) 
      .state('restaurant', { 
       url: '/restaurant/:restaurantId', 
       controller: function($scope, $stateParams, $state) { 
        console.log('first'); 
        if($stateParams.restaurantId > 0) { 
         $scope.setRestaurant($stateParams.restaurantId); 
        } 
        else { 
         $state.go('home'); 
        } 
       } 
      }) 
    .state('restaurant.our-food', { 
     url: '/our-food', 
     templateUrl: 'templates/our-food.html', 
        controller: function() { 
         console.log('second'); 
        } 
    }); 

});

cevap

11

'restaurant.our-food' durumunuz için denetleyici, ana durumunun şablonu olmadığı için yürütülmez. Bu, kendi şablonunu ve denetleyicisini eklemek için ui-view direktifinin olmadığı anlamına gelir. Ebeveyninizin yönergesi, bazı durumları ayarlamaktan başka bir şey yapmasa bile, en az bir şablon sağlaması gerekir.

deneyin sizin 'Restoran' durumuna takip ederek bu sizin için çalışmasını yapar olmadığını görmek ekleyerek: Bu ui-yönlendirici docs belgelenmiştir

template: "<div ui-view />" 

:

hatırla : Soyut devletlerin çocuklarının takmaları için hala kendi ihtiyaçları vardır. Yani, için bir soyut durumu kullanıyorsanız, url'yi ekleyin, özümleri/verileri ayarlayın veya bir onEnter/Exit işlevi, çalıştırın, daha sonra ek olarak şablon ayarlamanız gerekir: < ui-view/> '.

iş yaptı

https://github.com/angular-ui/ui-router/wiki/Nested-States-%26-Nested-Views

+1

! Çok teşekkürler dostum. Belgeleri okudum ama o bölümü kaçırdım. –

İlgili konular