2014-12-18 3 views
0

Idk, если моя тема достаточно описательная, но я постараюсь изо всех сил описать, что я делаю. Я действительно хочу узнать и понять Angular, и я иду из Backbone.js.Внешние контроллеры AngularJS/Просмотр файлов

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

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

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

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 и надлежащего управления. Как получить шаблон навигации, загруженный там, чтобы он включался на всех страницах? Мне нужно будет использовать фабрику или что-то еще?

+0

Другой способ сделать это, чтобы создать директиву для обработки навигации. Взгляните на: https://github.com/marcoslin/angularAMD/blob/master/www/js/scripts/directive/navMenu.js – marcoseu

ответ

0

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

После этого здесь 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. 
1

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

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

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

+0

Да, я сначала использовал ng-include, но мне нужен шаблон, привязанный к контроллеру так как в навигационной панели будут введены логин и пользовательские параметры ... так что ui-router я рассмотрю это. – Banning

+0

@ Баннинг, вы все равно можете привязать шаблон к контроллеру, просто используйте директиву ng-controller – Vadim

+0

. Я вижу .. так что как определить путь к контроллеру? Я хочу сохранить все мои контроллеры в директории constrollers. Или я застрял с необходимостью написать все это в файле app.js? – Banning