0

如果我的主题描述性足够好,但我会尽力描述我在做什么。我真的很想学习和理解 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 模板和正确的控制器。如何在其中加载导航模板以使其包含在所有页面中?我将不得不使用工厂或其他东西吗?

4

2 回答 2

1

要在所有页面中获得导航,您有多种选择。最简单的是您可以将其直接放入主标记中。

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

您可以做的另一件事是使用ui-router,但这将是更多的工作,但根据您的用例,这可能是值得的。

于 2014-12-18T17:41:17.790 回答
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.
于 2014-12-31T22:15:22.157 回答