2013-11-28 11 views
5

मेरे पास अभिभावक और बाल राज्य के साथ अलग नियंत्रक होने के साथ राज्यों ने घोंसला किया है। लेकिन केवल माता-पिता को निष्पादित किया जा रहा है।घोंसला वाले राज्य पर नियंत्रक निष्पादित नहीं हो रहा है

मैं यूआरएल संरचना है: #/रेस्तरां/2/हमारे खाद्य

तो, मैं इसे 'हमारे फूड' सामग्री बच्चे नियंत्रक लोड आईडी 2 और उसके बाद के साथ रेस्तरां लोड करना चाहते हैं और कुछ अन्य कार्यों का ख्याल रखना।

मेरे कोड है:

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'); 
        } 
    }); 

});

उत्तर

11

आपके 'restaurant.our-food' राज्य के नियंत्रक को निष्पादित नहीं किया जा रहा है क्योंकि इसके मूल राज्य में कोई टेम्पलेट नहीं है। इसका मतलब है कि इसके अपने टेम्पलेट और नियंत्रक को संलग्न करने के लिए ui-view निर्देश नहीं है। यहां तक ​​कि यदि आपका मूल निर्देश कुछ राज्य सेटअप के अलावा कुछ भी नहीं करता है, तो इसे कम से कम एक न्यूनतम टेम्पलेट प्रदान करना होगा।

कोशिश अपने 'रेस्तरां' राज्य के लिए निम्न और देखते हैं कि यदि यह आपके लिए काम करता है जोड़ने:

template: "<div ui-view />" 

यह ui रूटर डॉक्स में दर्ज है:

याद रखें : सार राज्यों को अभी भी अपने बच्चों के लिए प्लग इन करने की आवश्यकता है। तो यदि आप एक अमूर्त राज्य का उपयोग कर रहे हैं तो बस यूआरएल प्रीपेड करें, संकल्प/डेटा सेट करें, या एन्टर/एक्ज़िट फ़ंक्शन, पर चलाएं, फिर आपको टेम्पलेट सेट करने की आवश्यकता होगी: < ui-view/> '।

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

+1

यही काम किया है! बहुत बहुत धन्यवाद। मैंने प्रलेखन पढ़ा था, लेकिन उस भाग को याद किया जाना चाहिए। –

संबंधित मुद्दे