Я делаю страницу CRUD с помощью AngularJS, которая будет иметь функцию добавления/редактирования/удаления. Итак, мои маршруты будут что-то вроде этого:В AngularJS, как определить маршрут, который вызывает определенный метод на контроллере?
/items (show a list of the items)
/items/add (show add item form)
/items/edit/:itemId (show edit item form)
/items/del/:itemId (Delete item)
Кажется, что я должен был бы определить другой контроллер для каждого из этих 4-й маршрутов. Например, AddItemCtrl
, EditItemCtrl
и т. Д. Однако это не кажется оптимальным, поскольку AddItemCtrl
и EditItemCtrl
собираются разделить значительную часть своего кода. Вместо AddItemCtrl
, EditItemCtrl
и т.д., я предпочел бы иметь только один контроллер: ItemCtrl
, и в моем пути, я предпочел бы указать, если я хочу, чтобы позвонить ItemCtrl.add()
, ItemCtrl.edit()
и т.д.
Есть ли способ для достижения этой цели или что-то близкое к нему?
Вы можете использовать тот же контроллер как для редактирования, так и для добавления –
. Мне кажется, вам нужно следить за изменениями маршрута, как показано на рисунке [здесь] (http://stackoverflow.com/questions/14765719/angularjs-how-to-watch- в-а-маршрутных изменений). В частности, выполните $ scope. $ On ('$ routeChangeSuccess', обработчик); –
@JoeMinichino Тогда я буду бесполезно вмешиваться в мой метод 'routes.otherwise()', который определен для перенаправления на '/ dashboard' –