2014-12-17 2 views
1

Приложение My (phonegap) отлично работает в моем браузере (Chrome + Ripple), а также на моем Android-планшете. Однако ссылка больше не работает, когда вы создаете приложение с помощью xCode и запускаете его на iPad.ссылка ui-sref не работает на ipad

$rootScope.$on('$stateChangeError', function(){..}); 

показывает ошибку:

config: Object 
data: "" 
headers: function (c) {a||(a=vc(b));return c?a[D(c)]||null:a;} 
status: 404 
statusText: "" 
__proto__: Object 

Я думаю означает "состояние не найден"?

Маршрут:

.state('seminar', { 
    url: "/seminar/{id}", 
    views: { 
     '[email protected]': { templateUrl: "views/navigation/main.html" }, 
     '[email protected]': { templateUrl: "views/seminars/main.html" }, 
     '[email protected]': { templateUrl: "views/seminars/side.html" } 
    } 
}) 

Вид:

<a href ui-sref="seminar({ id: seminarCtrl.seminar.id})">Start</a> 

На логин-формы,

ng-submit() 

работает нормально.

Я не нашел других вопросов, связанных с этой проблемой. Может ли быть проблема с iOS и ui-sref/ui-router?

Заранее спасибо.

- Update 1 -

Вот скриншот сообщения об ошибке, брошенной в функции $ stateChangeError:

Errormessage

+0

404 должно означать, что браузер не смог найти файл html –

+0

Он работает с браузером и на устройстве Android, но не на iPad. – pensan

+0

вы можете проверить консоль своего браузера на ошибку (может быть сделано с помощью сафари Mac) –

ответ

1

Я не мог найти ответ, почему он работает в браузере, но не на iOS, но мне удалось найти решение.

Мой новый маршрутизатор:

.state('seminar', { 
     url: "/seminar/{seminar_id}", 
     views: { 
      '[email protected]': { templateUrl: "views/navigation/main.html" }, 
      '[email protected]': { templateUrl: "views/seminars/main.html" }, 
      '[email protected]': { templateUrl: "views/contact/side.html" } 
     } 
    }) 
    .state('seminar.course', { 
     url: "/course/{course_id}", 
     views: { 
      '[email protected]': { templateUrl: "views/courses/main.html" }, 
      '[email protected]': { templateUrl: "views/courses/side.html" } 
     } 
    }) 

Проблема была спрятана во втором маршруте. Сначала я написал

url: "seminar/{seminar_id}/course/{course_id}", 

, которые приводят к неправильному URL

/seminar/1/seminar/1/course/5 

Он работал прошивку после удаления первой части URL.

Кроме того, семинар_id будет передан на второй маршрут автоматически и доступен в $ stateParams.

Надеюсь, кто-то может использовать эту информацию.

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