@HAbRAhabp

Вопрос про архитектуру приложения и ngRoute?

Здравствуйте. Постараюсь вкратце описать суть своей проблемы. Вот такой код:
<body ng-app="Arenda" ng-controller="RootController">
<nav></nav>
<div ng-if="bgPageHeaderEnabled" ng-include="&quot;ng_templates/bg-pageheader.html&quot;"></div>
<div class="container" ng-view>
</body>

JS: (сори за кофескрипт)
app = angular.module "Arenda", ['ngMaterial', 'ngRoute'] # module init

`
app.config ($routeProvider) ->
  $routeProvider
  .when '/', 
    controller: 'RoomController'
    templateUrl: 'ng_templates/rooms.html'
  
  .when '/room/:id', 
    controller: 'PhotoController',
    templateUrl: 'views/photo.html'
  
  .otherwise 
    redirectTo: '/'
  return

app.controller "RootController", ['$scope', '$http', ($scope, $http) ->
  $scope.bgPageHeaderEnabled = true;
]

Остальные контроллеры я вырезал, т.к. они не нужны. Как правильно при роуте на другую страницу изменить параметр bgPageHeaderEnabled в RootController на false например? Или как это лучше сделать? Надеюсь я правильно разъяснился
  • Вопрос задан
  • 193 просмотра
Решения вопроса 2
@ilov3
Учу питон и джангу потому что модно
Не знаю как в дефолтном роутере, но в ui-router(дефакто в ангуляре) есть такая фича, как resolve. https://github.com/angular-ui/ui-router/wiki#resolve
Она позволяет передавать в state необходимые параметры посредством dependency injection.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
https://habrahabr.ru/post/277087/

если коротко:

- прекращайте использовать ngController, используйте компоненты. Желательно stateless компоненты.
- получение данных - в ресолверах (resolve)
- проброс данных - через биндинги компонентов
- для проектов чуть побольше используйте uiRouter. Ну или на худой конец angular-router. ngRoute подходит для очень маленьких приложений. Учитывайте это.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы