2013-08-12 3 views
6

Я бил головой о стену, пытаясь понять, почему угловая маршрутизация JJ не работает в телефоне для меня. У меня все файлы установлены правильно, и я не получаю никаких ошибок. Я пытаюсь изменить URL-адрес, используя службу $ location.url непосредственно из углового. Поэтому, когда вы нажимаете на div, у контроллера будет $ location.url («профиль»), и ничего не произойдет. Я попробовал решение, найденное в этом stackoverflow, но это не работает для меня. Я что-то делаю неправильно, или есть лучший способ приблизиться к этому? Ниже маршрутизации я настроилиМаршрутизация AngularJS не работает должным образом в PhoneGap

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

}); 

Контроллер образца будет:

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

$scope.goTo("profile"); 

}]); 

Как всегда любая помощь очень ценится.

+0

Вы пробовали, например. '$ Location.url ("#/Профиль")'? –

+0

У меня и до сих пор нет кубиков. url, кажется, меняется отлично, но угловой, похоже, не захватывает шаблон и не помещает его в ngview. – selanac82

+0

Вы пытались использовать html5mode? –

ответ

0

в контроллере попробовать ...

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

У меня была проблема, подобное этому сегодня. Основная проблема здесь заключается в том, что PhoneGap не имеет встроенного веб-сервера. Если вы разрабатываете локально, вы, вероятно, используете веб-сервер, поэтому можете сделать что-то вроде: http://localhost/#/profile, и маршрутизация будет работать.

Однако PhoneGap загружает ваш код с URL-адресом file://, а не http://. Если вы делаете $location.url("profile"), вы заменяете весь URL всего file://profile, которого не существует. То же самое, если вы используете ссылку: <a href="/#/profile">My Profile</a>

Решение состоит в том, чтобы каким-то образом получить ссылки, чтобы указать на нужное место. Если вы используете $location.url() вы можете префикс с путем к файлу: $location.url(window.location + "#/profile")

Если вы просто сделать ссылку, вы должны быть в состоянии уйти с взлетает ведущую косую черту, чтобы сделать его относительный URL: <a href="/#/profile">My Profile</a> становится <a href="#/profile">My Profile</a>

0

После долгих переделок, вот что сработало для меня!

Если вы можете использовать $ location.path() внутри контроллера, он должен работать так, как ожидалось, но если вам нужно использовать ссылки в стиле href, вы можете построить ссылки с угловой «базовой» страницы (например, основной .html):

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

4

Если бы точно такой же вопрос ... Я был в состоянии исправить это легко, добавив следующий код в голову моего файла index.html.

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

Надеюсь, это поможет.

+0

Это сработало и для меня, будет ли это (как мне нужно аналогичное исправление для iOS) работать на iOS? У меня нет mac, поэтому трудно проверить это на данный момент. – KungWaz

+0

@KungWaz Я не пробовал это на iOS. Я верю, что база не '/ android_asset /' в iOS, поэтому я бы проверял журналы, чтобы увидеть, откуда загружается страница, а затем просто переключите базовый тег на папку 'www'. – gcr15

+2

это не правильное решение, потому что оно работает только с устройствами Android ... –

Смежные вопросы