2014-05-03 16 views
6

में आयनिक ढांचे में यूई-राउटर का उपयोग करके मैं आयनिक ढांचे का उपयोग करने वाले ऐप पर काम कर रहा हूं। यह बदले में यूई-राउटर का उपयोग करता है। वर्तमान में, मेरे पास एक सुंदर मूल दो-पेज ऐप है। हालांकि, यह बहुत बड़ा हो जाएगा। इस समय, जब मैं अपने पहले दृश्य से दूसरे दृश्य में संक्रमण करता हूं तो मुझे एक त्रुटि मिलती है। त्रुटि कहती है:AngularJS

TypeError: Cannot read property '1' of null 
    at http://localhost:11000/vendor/ionic/release/js/ionic.bundle.js:14235:28 
    at updateView (http://localhost:11000/vendor/ionic/release/js/ionic.bundle.js:37839:30) 
    at eventHook (http://localhost:11000/vendor/ionic/release/js/ionic.bundle.js:37786:17) 
    at Scope.$broadcast (http://localhost:11000/vendor/ionic/release/js/ionic.bundle.js:19725:28) 
    at $state.transition.resolved.then.$state.transition (http://localhost:11000/vendor/ionic/release/js/ionic.bundle.js:31686:22) 
    at wrappedCallback (http://localhost:11000/vendor/ionic/release/js/ionic.bundle.js:18429:81) 
    at http://localhost:11000/vendor/ionic/release/js/ionic.bundle.js:18515:26 
    at Scope.$eval (http://localhost:11000/vendor/ionic/release/js/ionic.bundle.js:19441:28) 
    at Scope.$digest (http://localhost:11000/vendor/ionic/release/js/ionic.bundle.js:19267:31) 
    at Scope.$apply (http://localhost:11000/vendor/ionic/release/js/ionic.bundle.js:19547:24) 

मैं आयनिक फ्रेमवर्क के 1.0.0 बीटा 3 का उपयोग कर रहा हूं। मेरे app.js फ़ाइल इस तरह दिखता है:

"use strict"; 

var myApp = angular.module('myApp', ['ionic', 'ngRoute']); 

myApp.config(function($stateProvider, $urlRouterProvider) { 
    $stateProvider 
    .state('intro', { url: '/', templateUrl: 'app/account/welcome.html', controller: 'WelcomeController' }) 
    .state('login', { url: '/account/login', templateUrl: 'app/account/login.html', controller: 'LoginController '}) 
    ; 

    $urlRouterProvider.otherwise("/"); 
}); 

function WelcomeController($scope) { 
} 

function LoginController($scope) { 
} 

मेरे index.html इस तरह दिखता है:

<!DOCTYPE html> 
<html ng-app="myApp"> 
<head> 
    <meta charset="utf8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
    <title>MyApp</title> 

    <link rel="stylesheet" href="/vendor/ionic/release/js/ionic.bundle.min.js" /> 
    <link rel="stylesheet" href="/css/app.css" /> 

    <script type="text/javascript" src="/vendor/ionic/release/js/ionic.bundle.js"></script> 
    <script type="text/javascript" src="/vendor/angular-route/angular-route.min.js"></script> 

    <script type="text/javascript" src="/app/app.js"></script> 
    <script type="text/javascript" src="/app/controllers.js"></script> 
</head> 
<body> 
    <ion-nav-bar class="bar-positive" animation="nav-title-slide-ios7"> 
     <ion-nav-back-button class="button-icon ion-arrow-left-c"> 
     </ion-nav-back-button> 

     <h1 class="title">MyApp</h1> 
    </ion-nav-bar> 

    <ion-nav-view animation="slide-left-right"> 
    </ion-nav-view> 
</body> 
</html> 

welcome.html इस तरह दिखता है:

<ion-view> 
    <br /><br /> 
    <h1>Welcome</h1> 
    <a class="button" href="/#/account/login">Login</a> 
</ion-view> 

login.html तरह लग रहा है यह:

<ion-view> 
    <br /><br /> 
    <h1>Login</h1> 
</ion-view> 

दृश्य संक्रमण jus ठीक है हालांकि, ऊपर दिखाई गई त्रुटि मुझे चिंतित करती है। मुझे डर है कि मैं बाद में गधे में काटने जा रहा हूं। क्या किसी को पता है कि इसका क्या कारण होगा? क्या किसी को पता है कि मैं इसे कैसे ठीक कर सकता हूँ?

धन्यवाद!

+0

कोडपेन में अपना कोड छोड़ना सहायक हो सकता है –

+0

इस प्रश्न की बहु-फ़ाइल संरचना इसे कोडपेन बनाने के लिए असंभव (मुझे विश्वास है) बनाता है। – user3284007

+0

वास्तव में, मेरी जेएसफ़िल्ड आउट की जांच करें: http://jsfiddle.net/axedre/ef36wee7/1/ और इसे अपने आकलन में संशोधित करने के लिए स्वतंत्र महसूस करें ... –

उत्तर

15

यदि आप बंडल ionic.js फ़ाइल का उपयोग करते हैं, तो आपको ui-राउटर को शामिल करने की आवश्यकता नहीं है, यह पहले से ही शामिल है। आपको एनजी-राउटर भी शामिल करने की आवश्यकता नहीं है।

Heres the codepen

+1

यदि यह प्रश्न उपयोगी है, तो कृपया इसे सही के रूप में चिह्नित करें :) – mhartington

+1

दुर्भाग्यवश, वह दृष्टिकोण मेरे लिए काम नहीं करेगा। आपके दृष्टिकोण में एक ही .html फ़ाइल के अंदर टेम्पलेट्स के रूप में सभी कोड हैं। मेरे दृष्टिकोण में एकाधिक .html फ़ाइलें हैं। – user3284007

+0

यदि ऐसा है, तो अपने राज्य प्रदाता में टेम्पलेट यूआरएल को उस फ़ोल्डर नाम के साथ संलग्न करें जिसमें वे स्थित हैं। मैंने कोडपेन को इसके बारे में टिप्पणी के साथ अद्यतन किया। साथ ही, बाहरी एचटीएमएल फाइलों में स्क्रिप्ट टैग शामिल न करें। – mhartington

3

ngRoute सामान्य डिफ़ॉल्ट रूटर कोणीय का उपयोग करता है को दर्शाता है।

जबकि आप इसे अपनी निर्भरता के रूप में रखते हैं, तो आप यूआई-राउटर विधि, यानी राज्य प्रदाता और राज्यों का उपयोग नहीं कर सकते हैं।

आपके मामले में आप अपने निर्भरता से ngRoute दूर करने के लिए है, या []

var myApp = angular.module('myApp', ['ionic', 'ngRoute']);

var myApp = angular.module('myApp', ['ionic']);

के लिए और फिर अपने एक शून्य मान के बाद से अधिक समस्या निवारण, कुछ और टूटी हुई है।