1

我正在尝试使用 meanjs 堆栈,并尝试在一个地方声明一个类似枚举的数组,并使其在项目中从 Mongo 一直到 Angular 的任何地方都可用。实现这一目标的优雅方法是什么?

4

1 回答 1

0

这就是我想出的。

由于该定义必须对客户端和服务器都可用,因此我创建了一个全局文件夹,客户端代码可以访问该文件夹。

'myapp/public/globals/types.js'

'use strict';

(function (exports){

exports.PlaceTypes = ['restaurant', 'house', 'park'];

})(typeof exports === 'undefined' ? this[ApplicationConfiguration.applicationModuleName] = {} : exports);

为了使其易于访问,我必须编辑“myapp/config/env/all.js”,在模块行之前添加“public/globals/*”

...
    js: [
            'public/config.js',
            'public/application.js',
            'public/globals/*',
            'public/modules/*/*.js',
            'public/modules/*/*[!tests]*/*.js'
        ],
...

在模型中我可以导入它。

'myapp/app/models/place.server.model.js'

var PlaceTypes = require('../../public/globals/types').PlaceTypes;

/**
 * Place Schema
 */
var PlaceSchema = new Schema({
    name: {
        type: String,
        enum: PlaceTypes,
        required: 'Please fill Place name',
        trim: true
    }
});

现在 PlaceTypes 在堆栈中的任何地方都可用,并且只定义一次。

于 2014-05-26T21:43:04.397 回答