如何制作我可以包含在backbone.js项目中的配置文件

时间:2013-08-27 11:42:18

标签: javascript backbone.js

我想创建一个默认配置文件,根据该文件我将创建我的视图。

我想的是:

var Application = {};
Application.Config = {
   ViewerModule : {
     width    : '60%',
     height   : '60%',
     maxWidth : '99%',
     minWidth : '1%',
     iconSize : '24*24',
     defaultColor   : 'Green',
     selectedColor  : 'Orange',
     fontColor      : 'Black',
     viewerToolColor: 'White',
     defaultView    : 'Fit To Screen',
     Labels:{
            btnZoomIn     :'Zoom In',
            btnZoomOut    :'Zoom Out',
            btnRotateLeft :'Rotate Left',
            btnRotateRight:'Rotate Right',
            btnFitToScreen:'Fit to Screen',
            btnFullScreen :'Full Screen',
            btnSaveAs     :'Zoom In',
            btnExport     :'Zoom Out',
            btnPopOut     :'Rotate Left',
            btnEmail      :'Rotate Right',
            btnPdfConverter:'Fit to Screen',
            btnSetting    :'Settings'           
     }
   }
}

因此,当我在骨干网中创建视图时,我可以使用此配置值来定义我的Backbone View的默认值。

我想到的一件事是将配置文件中的值保存到主干模型并使用该模型创建视图。

但是,我不确定这是否正确。

可以就我如何实现它的想法或例子与我分享。

3 个答案:

答案 0 :(得分:2)

您是否考虑过使用继承来克服这个问题?您可以使用具有上述属性BaseView的{​​{1}}来代替配置。这样,这些值可以在子视图的实现中被覆盖,或者在构建子视图期间进行解析。

这是一个粗略的例子:

options

这是一个fiddle,表明它有效。

答案 1 :(得分:1)

如果我理解你,我建议你使用Model defaults,在这里你可以看到简单的例子。或者您可以像json对象一样使用您的配置,但是您必须创建空模型并将config json设置为model(= new Model)

答案 2 :(得分:1)

如果您想为视图设置默认值,可以使用_.defaults将配置对象混合到视图原型中,如果您想强制使用值,则可以使用_.extend

例如,

var Application = {};
Application.Config = {};
Application.Config.ViewerModule = {
    width: '60%',
    height: '60%'
};

var V = Backbone.View.extend({
    width: '50%'
});
_.defaults(V.prototype, Application.Config.ViewerModule);

var v = new V();
console.log(v.width, v.height);

演示http://jsfiddle.net/nikoshr/VX7SY/