2015-05-29 11 views
5

मैं वर्तमान में एक ऐप पर काम कर रहा हूं, Ionic का उपयोग कर निर्माण कर रहा हूं। मेरी समस्या यह है कि $ state.go केवल ब्राउज़र में काम कर रहा है लेकिन फोन पर नहीं। यह एक आम समस्या प्रतीत होती है, लेकिन एक ही प्रश्न के बहुत सारे जवाब पढ़ने के बाद, मैं अभी भी इसे ठीक करने का तरीका नहीं समझ सकता।

सामान्य फ़िक्स यह सुनिश्चित करने के लिए प्रतीत होता है कि आप यहां समझाए गए सापेक्ष URL का उपयोग कर रहे हैं: Using Angular UI-Router with Phonegap लेकिन मैं अभी भी इसे काम नहीं कर सकता। मैं क्या खो रहा हूँ? plunker को

लिंक: http://plnkr.co/edit/qFJ1Ld6bhKvKMkSmYQC8?p=preview

App.js संरचना:

.... 
    $stateProvider 
     .state('parent', { 
     url: "/", 
     templateUrl: "parent.html" 
    }) 
    .state('parent.child', { 
     url: "child", 
     templateUrl: "child.html" 
    }) 
    $urlRouterProvider.otherwise("/") 
    }) 
    .... 
+0

आप त्रि है एक समारोह में $ state.go करने के लिए ed? – carton

+0

अभी तक नहीं - कोशिश करेगा और ऐसा करेगा! – kandersen

+0

मैंने प्लंकर को अपडेट किया ताकि $ state.go 'मेनू 1' के लिए एक फ़ंक्शन में हो। डिवाइस पर परीक्षण करते समय यह मेनू पर क्लिक करने के बाद या तो ओप या डाउन स्वाइप करने के बाद ही दिखाई देता है। तो परिदृश्य यह है, मैं मेनू 1 पर क्लिक करता हूं - कुछ भी नहीं होता - या तो ऊपर या नीचे स्वाइप करें और फिर दृश्य दिखाई देता है। मैंने आईओनिक व्यू – kandersen

उत्तर

0

state.go के लिए आप अपने नियंत्रक

app.controller('ParentCtrl', ['$scope', '$state', function($scope, $state) { 
    $scope.$state = $state 
}]); 

app.controller('MenuCtrl', ['$scope', '$state', function($scope, $state){ 

    $scope.goTo = function(){ 
     $state.go('menu.kategorier'); 
    } 

}]); 

और आप के लिए $ राज्य निर्भरता इंजेक्षन करने के लिए है काम करने के लिए उस राज्य को पंजीकृत करना है जिसे आप $ राज्य में प्राप्त करना चाहते हैं प्रदाता

$stateProvider 
.state('menu.kategorier', {...}) 

और उस स्थिति में जाने के लिए आपको इस मामले में 'मेनू' जैसे मूल राज्य से जाना होगा। आप 'menu.kategorier' को 'माता-पिता' से राज्य को नहीं बदल सकते, लेकिन आप 'माता-पिता'

+0

का उपयोग कर मोबाइल पर इसका परीक्षण किया 'menu.kategorier' एक कॉपी पेस्ट त्रुटि है। डिवाइस पर परीक्षण करते समय मैं इसका उपयोग कर रहा हूं। प्लंकर में इसे आसान बनाने के लिए मैंने parent.child का उपयोग किया। तो जब इसका परीक्षण किया गया तो मैं सही $ stateProvider का उपयोग कर रहा था। – kandersen

+0

इसे जोड़ने में भूल गए, नियंत्रक में $ राज्य निर्भरता को सही करने से समस्या ठीक नहीं होती है, जहां दृश्य देखने के लिए मेनू पर क्लिक करने के बाद मुझे स्वाइप करना होगा। – kandersen

0

मैं इस उदाहरण पर आधारित है, नेस्टेड दृश्यों के लिए मेरी सेटअप को बदलकर इसे हल से गोटो 'parent.child' कर सकते हैं: http://codepen.io/mhartington/pen/Bicmo

plunker:

यहाँ जो लोग रुचि रखते हैं के लिए मेरे plunker, है http://plnkr.co/edit/2m5bljMntpq4P2ccLrPD?p=preview

app.js संरचना:

$stateProvider 
     .state('eventmenu', { 
     url: "/event", 
     abstract: true, 
     template: "<ion-nav-view name='menuContent'></ion-nav-view>" 
     }) 

     .state('eventmenu.home', { 
     url: "/home", 
     views: { 
     'menuContent' :{ 
      templateUrl: "home.html" 
     } 
     } 
    }) 

    .state('eventmenu.home.home1', { 
    url: "/home1", 
    views: { 
     'inception' :{ 
     templateUrl: "home1.html" 
     } 
    } 
    }) 
संबंधित मुद्दे