如何为 angular 路由创建布局模板?

How to create a layout template for angular routing?

我使用angular路由:

angular.module("app-test", ["ngRoute"]).config(function ($routeProvider, $locationProvider) {

    $locationProvider.hashPrefix('');

    $routeProvider.when("/",
        {
            controller: "firstController",
            templateUrl: "/views/first/index.html"
        });

    $routeProvider.when("/second",
        {
            controller: "secondController",
            templateUrl: "/views/second/index.html"
        });

    $routeProvider.otherwise({ redirectTo: "/" });
});

但我对不同路线的所有看法(例如views/first/index.html、views/second/index.html等.) 有重复的 html 代码,例如加载面板、消息等。 我怎样才能 外包 那些共同的语法,例如 布局 html 页面 一起使用 angular 路由的 templateUrl 视图?

例如,如果每个 templateUrl 都有以下 html 代码 - <div>{{message}}</div> - 我想将此代码放在一个额外的 html 文件中,该文件将包含在 templateUrl 中,而angular 路由正在获取视图。

您可以使用 ng-include。但是您也可以将相同的视图 (html) 与不同的控制器一起使用:

        $routeProvider.when("/",
        {
            controller: "firstController",
            templateUrl: "/views/shared.html"
        });

    $routeProvider.when("/second",
        {
            controller: "secondController",
            templateUrl: "/views/shared.html"
        });

另请注意,"views" 文件夹不能很好地缩放。每个功能都有一个功能目录,其中包含构建该功能所需的所有部分,这样效果会更好。共享的东西可能有点冒险——如果你事先知道你要共享它,你可以把它放在 "shared" 或 "common" 目录中,但有时你最终会从首次使用的功能。