无法覆盖header.html文件

时间:2015-11-14 13:01:19

标签: javascript mean-stack mean.io

我已经覆盖了默认的布局和视图。所以我看到了自己的index.html文件的内容。但是为什么它会从系统包加载header.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');
  }
]);

1 个答案:

答案 0 :(得分:0)

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

来自文档:

  

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

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