2013-08-12 7 views
6

में ठीक से काम नहीं कर रहा है मैं दीवार के खिलाफ अपना सिर मार रहा हूं यह पता लगाने की कोशिश कर रहा हूं कि क्यों कोणीय जेएस रूटिंग मेरे लिए फोनगैप में काम नहीं करेगी। मेरे पास सभी फाइलें सही तरीके से सेटअप हैं और मुझे कोई त्रुटि नहीं मिली है। मैं सीधे कोणीय से $ location.url सेवा का उपयोग कर यूआरएल बदलने की कोशिश कर रहा हूं। तो जब आप एक div पर टैप करते हैं तो नियंत्रक के पास $ location.url ("प्रोफ़ाइल") होगा उदाहरण के लिए और कुछ भी नहीं होगा। मैंने इस stackoverflow में पाया समाधान का प्रयास किया लेकिन यह मेरे लिए काम नहीं कर रहा है। क्या मैं कुछ गलत कर रहा हूं, या इस पर पहुंचने का एक बेहतर तरीका है?एंगुलरजेएस रूटिंग फोनगैप

app.controller("listsCtlr", ["$scope", "$location", function($scope, $location){ 

$scope.goTo("profile"); 

}]); 

हमेशा की तरह किसी भी मदद की बहुत सराहना की है: के बाद मैं सेटअप

var app = angular.module("App", ["hmTouchevents"]) 
.config(function($routeProvider) { 

$routeProvider 
    .when("/index.html", { 
     templateUrl: "/views/login.html", 
     controller: "loginCtlr" 
    }) 
    .when("/landing", { 
     templateUrl: "/views/landing.html", 
     controller: "landingCtlr" 
    }) 
    .when("/single-view/:id", { 
     templateUrl: "/views/single-view.html", 
     controller: "singleViewCtlr" 
    }) 
    .when("/restaurant", { 
     templateUrl: "/views/restaurant-info.html", 
     controller: "restaurantCtlr" 
    }) 
    .when("/profile/:id", { 
     templateUrl: "/views/profile.html", 
     controller: "profileCtlr" 
    }) 
    .when("/lists/:list", { 
     templateUrl: "/views/lists.html", 
     controller: "listsCtlr" 
    }) 
    .when("/follow/:type", { 
     templateUrl: "/views/follow.html", 
     controller: "followCtlr" 
    }); 

}); 

एक नमूना नियंत्रक हो जाएगा मार्ग है।

+0

क्या आपने कोशिश की है उदा। '$ Location.url (" #/प्रोफ़ाइल ")'? –

+0

मेरे पास अभी भी कोई पासा नहीं है। यूआरएल ठीक बदल रहा प्रतीत होता है, लेकिन कोणीय टेम्पलेट को पकड़ने और ngview में रखने के लिए प्रतीत नहीं होता है। – selanac82

+0

क्या आपने html5mode का उपयोग करने की कोशिश की? –

उत्तर

0
अपने नियंत्रक कोशिश में

...

$location.path('/profile'); 
4

मैं एक समस्या यह आज रात के लिए इसी तरह की थी। यहां मूल मुद्दा यह है कि फोनगैप में कोई वेब सर्वर नहीं बनाया गया है। यदि आप स्थानीय रूप से विकास कर रहे हैं, तो आप शायद एक वेब सर्वर का उपयोग कर रहे हैं, ताकि आप कुछ ऐसा कर सकें: http://localhost/#/profile और रूटिंग काम करेगी।

हालांकि, फोनगैप file:// यूआरएल के साथ अपना कोड लोड करता है, http:// नहीं। यदि आप $location.url("profile") करते हैं तो आप पूरे URL को केवल file://profile के साथ बदल रहे हैं, जो मौजूद नहीं है। यदि आप इस तरह के लिंक का उपयोग करते हैं तो वही बात: <a href="/#/profile">My Profile</a>

समाधान किसी भी तरह से सही जगह पर इंगित करने के लिए आपके लिंक प्राप्त करना है। $location.url(window.location + "#/profile")

तुम सिर्फ एक लिंक बना रहे हैं, तो आप अग्रणी स्लैश लेने यह एक सापेक्ष URL बनाने के लिए के साथ भाग प्राप्त करने में सक्षम होना चाहिए: आप $location.url() उपयोग कर रहे हैं आप अपनी फ़ाइल पथ अवश्य लगा दें सकते हैं <a href="/#/profile">My Profile</a><a href="#/profile">My Profile</a>

0

बहुत परेशान होने के बाद, यहां मेरे लिए क्या काम किया गया है!

यदि आप नियंत्रक के भीतर $ location.path() का उपयोग कर सकते हैं, तो इसे अपेक्षित कार्य करना चाहिए, लेकिन यदि आपको href-style लिंक का उपयोग करने की आवश्यकता है, तो आप कोणीय "बेस" पृष्ठ (जैसे मुख्य .html):

<a href="main.html#/profile">Link To Profile</a>

4

ठीक उसी समस्या थी ... मैं अपने index.html फ़ाइल के सिर के लिए निम्न कोड जोड़कर आसानी से इसे ठीक करने में सक्षम था।

<base href="/android_asset/www/" /> 

उम्मीद है कि इससे मदद मिलती है।

+0

यह मेरे लिए भी काम करता है, क्या यह (आईओएस के लिए मुझे एक समान फिक्स की आवश्यकता है) आईओएस पर काम करेगा? मैक नहीं है, इस समय इस परीक्षण के लिए इतना कठिन है। – KungWaz

+0

@ कुंगवाज़ मैंने आईओएस पर यह कोशिश नहीं की है। मुझे विश्वास है कि आधार आईओएस में '/ android_asset /' नहीं है, इसलिए मैं यह देखने के लिए लॉग देखता हूं कि पृष्ठ कहां से लोड किया गया है, और उसके बाद बस टैग को 'www' फ़ोल्डर में स्विच करें। – gcr15

+2

यह उचित समाधान नहीं है क्योंकि यह केवल एंड्रॉइड डिवाइस के साथ काम कर रहा है ... –