2013-06-28 3 views
0

Я иду из фона PHP MVC, и я начинаю использовать AngularJS. В PHP я бы сделал что-то подобное, чтобы направить пользователя на разные части веб-сайта: захватить URL-адрес, разделить его, а затем отправить пользователя на запрошенную страницу. Например, если пользователь вошел в www.mysite.com/info/product/1, тогда PHP разделил бы этот URL-адрес и сказал бы «хорошо, используйте контроллер« info ». Затем контроллер «info» сказал бы «хорошо, используйте контроллер продукта». Этот контроллер будет делать то, что он делает, а затем отправит пользователя на запрошенный URL-адрес.Как я могу перенаправить запросы в подкаталоги с помощью AngularJS?

В угловой я пытаюсь выяснить эквивалент этого. Я видел такие вещи:

angular.module('phonecat', []). 
config(['$routeProvider', function($routeProvider) { 
$routeProvider. 
    when('/phones', {templateUrl: 'partials/phone-list.html', controller: PhoneListCtrl}). 
    when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}). 
    otherwise({redirectTo: '/phones'}); 
}]); 

Означает ли это, что я должен вводить все возможные URL-адреса таким образом? Другими словами, нужно ли дублировать вышеуказанный код для любого URL-адреса, который является подзаголовком www.mysite.com/phones/. Как это:

.... 
when('/phones',...). 
when('/phones/:phoneId',...). 
... 

, а затем сделать то же самое для другого каталога (например, www.mysite.com/computers/...).

Любая помощь была бы принята с благодарностью.

ответ

1

Похоже, вы на правильном пути (каламбур).

В поставщике маршрутов вы определяете, какой вид и контроллер будут использоваться для заданного URL ($ location). Наряду с самим дорожкой вы можете включать параметры, которые вы показываете с помощью phoneId. Имейте в виду, что это не пути на сервере, это просто URL-адреса, используемые угловым приложением для отслеживания его истории и навигации для «глубокой привязки», чтобы показать соответствующий вид при копировании ссылки.

Если вы используете какой-то интерфейс RESTful, где PHP имеет некоторую «структуру каталогов» или URL-адрес, который подразумевает модель данных, которая является отдельной проблемой. Вы бы справились с этим, используя $ resource в AngularJS. Я верю, хотя я не знаком с тем, что это реально реализую. До сих пор я использовал $ http в службе, которую я определяю для обработки своих вызовов на сервер, и просто вручную настраиваю, какие файлы вызывают, но для больших сложных проектов интерфейс REST, вероятно, является хорошей идеей, чтобы избежать всех ручной работы и потенциальных ошибок.

+0

Спасибо! Вы помогли прояснить несколько вещей для меня. Я новичок в AngularJS, но я вполне уверен, что это будущее развития интерфейса. –

+0

@NancyCollier Нет проблем, я уже спотыкался о том, как я смотрел тонны видеороликов, поэтому у меня есть абстрактное представление о том, как все должно работать, я думаю, но все же научиться правильно применять все это на практике. – shaunhusain