Внешний контроллер AngularJS / Просмотр файлов

ИДК, если мой предмет достаточно описательный, но я постараюсь изо всех сил описать, что я делаю. Я действительно хочу выучить и понять Angular, и я из Backbone.js.

Моя установка использует RequireJS Angular и AngularAMD ( http://marcoslin.github.io/angularAMD/)

Я настроил свою страницу нормально, используя маршруты, которые выходят и получают различные представления из каталогов представления. ОДНАКО, я пытаюсь вытащить навигацию с главной страницы и вывести ее в свой внешний вид.

У меня такое ощущение, что это легко. Просто я недостаточно хорошо разбираюсь в Angular, чтобы делать это. Я думаю, что мне нужен навигационный контроллер, но я не понимаю, как я могу загрузить свой внешний вид, как я могу с маршрутами.

angular
.module('app', [
    'ngRoute',
])
.config(config)

config.$inject = ["$routeProvider"];
function config($routeProvider) {
    $routeProvider
        .when('/', angularAMD.route({
        templateUrl: 'views/home.html', 
        controller: 'homeController', 
        controllerUrl: 'controllers/home'
    }))
}

Так что это довольно просто, когда мой URL-адрес / будет загружать шаблон home.html и соответствующий контроллер. Как мне загрузить шаблон навигации, чтобы он был включен на всех страницах? Я собираюсь использовать фабрику или что-то еще?

2 ответа

Решение

Я просто хотел, чтобы все знали, что в итоге я делил все на модули. Теперь у меня есть модули заголовка, нижнего колонтитула и навигации вместе со всеми другими модулями.

После того, как вы готовы здесь https://docs.angularjs.org/guide/module разделе "Рекомендуемая установка", я чувствую, что это, вероятно, лучший подход к тому, чего я хочу достичь.

Хотя приведенный выше пример прост, он не масштабируется для больших приложений. Вместо этого мы рекомендуем разбить ваше приложение на несколько модулей следующим образом:

A module for each feature
A module for each reusable component (especially directives and filters)
And an application level module which depends on the above modules and contains any initialization code.

Для навигации по всем вашим страницам у вас есть несколько вариантов. Самое простое, вы можете поместить это прямо в вашу основную разметку.

<body ng-app="app">
   <div ng-include="'views/nav.html'"></div>
   <div ng-view></div>
</body>

Другая вещь, которую вы можете сделать, это использовать ui-router, однако это будет больше работы, но это может стоить того, в зависимости от вашего варианта использования.

Другие вопросы по тегам