MEAN框架学习笔记(二)

2015-07-21 16:26:30 · 作者: · 浏览: 1
ver/routes/myPackage.js的例子:
// The Package is past automatically as first parameter
module.exports = function(MyPackage, app, auth, database) {


  // example route
  app.get('/myPackage/example/anyone', function (req,res,next) {
    res.send('Anyone can access this');
  });
};

11、Angular路由
Angular也有路由,它的路由通常在public/routes/myPackage.js中。最新版本的MEAN使用的是$stateProvider。
$stateProvider
  .state('myPackage example page', {
    url: '/myPackage/example',
    templateUrl: 'myPackage/views/index.html'
  });


当以包名称作为开头的话,Angular的视图就可以通过templateUrl来公开了。

12、菜单系统
包可以勾住现有的菜单系统然后添加链接到MEAN集成的菜单中去。每一个链接都有指定title、template、menu、role。如果指定的menu并不存在,那么一个新的menu将会被创建出来。通过menu angular service查询链接的信息,可以让menu对象变在客户端中变得可以访问。


下面是介绍如何在app.js中为菜单添加链接的。
//We are adding a link to the main menu for all authenticated users
MyPackage.menus.add({
  title: "myPackage example page",
  link: "myPackage example page",
  roles: ["authenticated"],
  menu: "main"
});


可以通过查看public/system/controllers/header.js目录来了解菜单服务如何实现的。


13、Html视图渲染
包可以通过内置的渲染函数进行html的渲染。默认的渲染函数是swig。视图存在于包中的server/views文件夹中,并且以.html作为结尾。
下面是一个简单渲染html的例子。
app.get('/myPackage/example/render', function (req,res,next) {
  MyPackage.render('index', {packageName:'myPackage'}, function (err, html) {
    //Rendering a view from the Package server/views
    res.send(html);
  });
});

14、覆盖默认的布局
通过自定义的包,可以覆盖默认的布局。
下面是一个覆盖默认系统布局而不是使用在包内的本地布局的例子:
MyPackage.register(function(system, app) {
  app.set('views', __dirname + '/server/views');
  // ...

不过注意,package必须依赖System包来保证它在System包后面被求值,这样可以覆盖视图文件夹。


15、覆盖视图
你可以覆盖core包使用的默认的public视图。创建一个主页,你必须创建一个包,并且修改在public文件夹的脚本,就像这样:
angular.module('mean.mycustompackage', ['mean.system'])
.config(['$viewPathProvider', function($viewPathProvider) {
  $viewPathProvider.override('system/views/index.html', 'mycustompackage/views/myhomepage.html');
}]);

这样会将mycustompackage/views/myhomepage.html渲染成为主页。

16、创建自己的包
$ mean package 
  

它将会将包创建在/packages/custom/packageName下。

17、删除包
$ mean uninstall myPackage

18、贡献自己的包
如果你的包已经定型并且不会出什么问题了,那么你可以将你的包上传到包代码库中。方法是:
$ mean register # register to the mean network (see below)
$ cd 
  
   
$ mean publish