2016-07-28 3 views
1

Я пытаюсь переключаться между маршрутами с помощью углового ui-router. У меня есть два представления, которые используют точно такую ​​же функциональность. Мой взгляд 2 использует почти 90% функциональности из моего представления, исключая некоторые из html-кода. В таком случае я могу использовать тот же контроллер для двух состояний, как это?Можем ли мы использовать один контроллер для двух состояний при изменении состояний с использованием ui-router

// Routes 
    .config(['$stateProvider', function ($stateProvider) { 
     $stateProvider 
     .state('moduleone', { 
      url: '/moduleone', 
      controller: 'moduleoneCtrl', 
      templateUrl: path + 'views/one.html', 
     }) 
     .state('module two',{ 
      url: '/moduletwo', 
      controller: 'moduleoneCtrl', 
      templateUrl: path + 'views/two.html', 
     }); 
    }]); 
+0

Если остальные 10% заворачивают в элемент можно просто выключить его с помощью 'нг-if'. Общее правило - это один контроллер для каждой точки зрения, но, конечно, это просто руководство. –

+0

@MuliYulzary Спасибо Muli. Я попробую это! – hhhh4

ответ

1

Скорее я бы сказал, создайте единое состояние, которое будет состоять из небольшого шаблона отображения. У вас может быть отображение, хранящееся где-нибудь, чтобы определить имя шаблона.

CodE

var ids = {"1": "one", "2": two} 

.state('module',{ 
    url: '/module/:id', 
    controller: 'moduleoneCtrl', 
    templateUrl: function($stateParams){ 
     return path + 'views/'+ ids[$stateParams.id] +'.html'; 
    } 
}); 
+0

Parakar Да, у меня есть файл json, где отображаются сопоставления. Но как избавиться от нежелательного HTML-кода на новой странице просмотра? – hhhh4

+1

@ hhhh4 для нежелательного html-кода в новом шаблоне, используйте 'ng-show' или лучше,' ng-if', чтобы «удалить» их. что сводится к работе вашего контроллера – CozyAzure

+0

@CozyAzure Спасибо. Попробуй! – hhhh4