Angualrjs - перенаправление с одного контроллера на другой - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть два контроллера.Я хотел бы использовать другой контроллер на основе значения зависимости.Я не могу установить это на уровне $ route.Как я могу по существу сделать это на главном контроллере: это вообще возможно?

angular.module('app').controller('Controller1', ['importantService', function(importantService) {

    if (importantService.getValue) {
       // Use this other controller Controller2 instead
    }

});

1 Ответ

0 голосов
/ 15 декабря 2018

Вы можете поместить ваши 2 контроллера в директивы и иметь ng-if в шаблоне для переключения между ними, что-то вроде:

app.controller('MainCtrl', function($scope, importantService) {
  $scope.importantValue = importantService.getValue;
});

app.directive('myFirstComponent', function() {
  return {
    restrict: 'E',
    templateUrl: '/same/url/for/both',
    controller: function() {/*...your controller 1*/}
  };
});

app.directive('mySecondComponent', function() {
  return {
    restrict: 'E',
    templateUrl: '/same/url/for/both',
    controller: function() {/*...your controller 2*/}
  };
});

и в вашем шаблоне

<div ng-if="importantValue === 1"><my-first-component></my-first-component></div>
<div ng-if="importantValue === 0"><my-second-component></my-second-component></div>

вероятно, не самое ортодоксальное решение, но оно будет делать то, что вы просите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...