0

В настоящее время у меня есть приложение, построенное с угловым 2 (все стороны интерфейса) и Symfony 3 (веб-фреймворк). Я определил каждое представление как угловое приложение.Одиночное приложение с Symfony 3 и Angular 2 (Маршруты)

Я думаю, что пришло время перейти на одно приложение, но у меня есть некоторые вопросы, прежде чем я отправимся в логово льва.

Если пользователь вручную меняет URL-адрес, конечно, они должны ввести требуемый URL-адрес, но как может угловатый узнать, какой URL-адрес пытается открыть?

Я должен создать несколько контроллеров или только один, который поймает все запросы? Если ни один из приведенных выше вариантов не является правильным, пожалуйста, можете ли вы предложить любой способ сделать это?

Большое вам спасибо.

ответ

2

Если вы пытаетесь построить Single Page application, это значит, что ваши маршруты будут управляться вашим интерфейсом, здесь угловым 2 через @angular/router.

Symfony может затем быть только используется в качестве веб-службы фоновым (т.е. Restful API), который будет отвечать вашим фронтальными звонки через JSON responses. В зависимости от размера вашего API вы можете использовать для этой цели FOSRestBundle.

Так что вам не нужно беспокоиться о интерпретации маршрутов Symfony, поскольку ваши URL-адреса будут управляться с помощью углового маршрутизатора. Маршруты Symfony будут вызываться непосредственно вашим угловым приложением, чтобы получить/отправить/поместить/удалить/исправить ваши исходные данные.

UPDATE

Для ответа вы комментируете, пользователь, который непосредственно входит в URL будет просто увидеть страницу, связанную с этим URL через Угловое маршрутизации нет (почти) нет разницы между передним концом и back-end routing.

Если вы хотите глубоко погрузиться в работу хэш-маршрутизации в javascript, вы можете проверить это article.

Чтобы увидеть реальный пример SPA с полной угловой маршрутизацией, ga.me - хорошее начало.

+0

Но что происходит, когда пользователь меняет URL-адрес непосредственно в браузере, а не на ссылку в моем приложении? Спасибо! –

+1

@IdirOuhabMeskine Я обновил свой ответ. Короче: это будет просто работать, вам не о чем беспокоиться. –

+1

Спасибо @ ivan-gabriele Сотрудник нашел проект, который отвечает требованиям моего вопроса, и я хочу поделиться с вами проектом. https://github.com/spartaksun/notice-board Пока! –

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

  • Нет связанных вопросов^_^