【问题标题】:Can't override header.html file无法覆盖 header.html 文件
【发布时间】:2016-02-02 23:54:15
【问题描述】:

我已经覆盖了默认布局和视图。所以我看到了我自己的 index.html 文件的内容。但是它是怎么从系统包中加载header.html的呢?为什么它不加载我自己的 header.html,它存在于我自己的包中?

这是我目前在我自己的包中拥有的:在 server/views/layouts/default.html 中:

<div class="navbar navbar-inverse navbar-fixed-top" data-ng-include="'/myTheme/views/header.html'" data-role="navigation"></div>

这就是我在 app.js 中覆盖我自己的包中的默认布局的方式:

MyTheme.register(function(app, auth, database) {

  //We enable routing. By default the Package Object is passed to the routes
  MyTheme.routes(app, auth, database);

  //We are adding a link to the main menu for all authenticated users
  MyTheme.menus.add({
    title: 'myTheme example page',
    link: 'myTheme example page',
    roles: ['authenticated'],
    menu: 'main'
  });

  app.set('views', __dirname + '/server/views');

// More code..

这就是我在 myTheme.js 中自己的包中覆盖我的公共视图的方式:

'use strict';

angular.module('mean.myTheme',  ['mean.system']).config(['$viewPathProvider', '$stateProvider',
  function($viewPathProvider, $stateProvider) {
    $viewPathProvider.override('system/views/index.html', 'myTheme/views/index.html');
  }
]);

【问题讨论】:

    标签: javascript mean-stack mean.io


    【解决方案1】:

    您需要将 System 传递给您的注册函数。另外,我会将app.set() 函数作为注册函数的第一行。

    来自文档:

    请注意,包必须依赖于 System 以确保在 System 之后对其进行评估,从而可以覆盖 views 文件夹

    MyPackage.register(function(system, app) {
      app.set('views', __dirname + '/server/views');
      // ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-20
      • 2014-06-19
      • 2021-12-02
      • 2018-12-30
      • 2019-11-10
      • 2013-08-28
      • 2017-01-10
      • 2018-08-27
      相关资源
      最近更新 更多