2014-10-15 2 views
0

Есть ли способ иметь один и тот же контроллер, но предоставляет различные методы/переменные для разных маршрутов?angularjs - тот же контроллер, разные методы/переменные для разных маршрутов

Я в настоящее время использую UI-маршрутизатор и хотел бы выставить различные методы/переменные для /new, /edit, /delete

ответ

0

Вы можете иметь все маршруты, указывающие на тот же контроллер, но в контроллере использовать $ stateParams для определить, какой метод ему нужно вызвать. Не думайте, что это должно быть тяжелее? Если я не понял этот вопрос.

+0

Да, это будет работать отлично. Мне было интересно, есть ли способ переместить больше логики в '$ stateProvider', где я могу просто указать метод, который будет вызывать функцию со всеми переменными и методами $ scope –

1

Да.

Использование ui-router,

angular.module("myModule") 
.controller("myController",function($scope,$stateParams){ 
    if ($stateParams.mySubView === "/new") { 
     $scope.hello = function(){alert("Hello")}; 
    } else { 
     $scope.hello = function(){alert("Hi")}; 
    } 
}) 
3

ли не больше смысла иметь тот же шаблон, но с разными контроллерами?

+1

Я бы согласился с вами по этому поводу, имея тот же самый контроллер ведет себя по-другому, я считаю, что принцип Open-Close наверняка будет нарушен. – PSL

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