【问题标题】:Dojo Custom build in 1.8.11.8.1 中的 Dojo 自定义构建
【发布时间】:2013-04-16 05:44:22
【问题描述】:

当我们为 dojo 创建自定义构建时,它还将各种小部件的 html 模板内化到该小部件的 js 文件中。

对于 EnhancedGrid 的 Filter 插件,上述情况直到 1.8.0 才出现,并在 1.8.1 中修复。我已经使用 dojo 1.8.0 编写了我的应用程序。

在使用 dojo 1.8.0 时,是否有任何解决方法可以让增强网格过滤器插件的 html 模板内部化

【问题讨论】:

    标签: dojo dojo-build


    【解决方案1】:

    1.8.0和1.8.1的未压缩过滤器js文件有一个简单的区别,就是这一行(例如在FilterBar.js中):

    "dojo/text!../../templates/FilterBar.html"
    

    如果你看一下 1.8.1:

    define([
        "dojo/_base/declare",
        "dojo/_base/array",
        "dojo/_base/connect",
        "dojo/_base/lang",
        "dojo/_base/sniff",
        "dojo/_base/event",
        "dojo/_base/html",
        "dojo/_base/window",
        "dojo/query",
        "dijit/_Widget",
        "dijit/_TemplatedMixin",
        "dijit/_WidgetsInTemplateMixin",
        "dojo/fx",
        "dojo/_base/fx",
        "dojo/string",
        "dijit/focus",
        "dojo/text!../../templates/FilterBar.html" // HERE HERE HERE HERE HERE HERE
    ], function(declare, array, connect, lang, has, event, html, win, query, _Widget,
        _TemplatedMixin, _WidgetsInTemplateMixin, fx, baseFx, string, dijitFocus,
     template){ // HERE HERE HERE HERE - NOTICE THE MAPPING ...
    

    然后,如果您查看 1.8.0 FilterBar.js:

    define("dojox/grid/enhanced/plugins/filter/FilterBar", [
        "dojo/_base/declare",
        "dojo/_base/array",
        "dojo/_base/connect",
        "dojo/_base/lang",
        "dojo/_base/sniff",
        "dojo/_base/event",
        "dojo/_base/html",
        "dojo/_base/window",
        "dojo/cache",
        "dojo/query",
        "dijit/_Widget",
        "dijit/_TemplatedMixin",
        "dijit/_WidgetsInTemplateMixin",
        "dojo/fx",
        "dojo/_base/fx",
        "dojo/string",
        "dijit/focus"
    ], function(declare, array, connect, lang, has, event, html, win, cache, query, 
        _Widget, _TemplatedMixin, _WidgetsInTemplateMixin, fx, baseFx, 
        string, dijitFocus){...
    

    1.8.0中没有这行,所以在必要的未压缩过滤器js文件中添加这行并创建一个新的构建。

    您必须对运行时加载的所有 html 文件执行此操作:

    /dojox/grid/enhanced/templates/FilterBar.html
    /dojox/grid/enhanced/templates/FilterDefPane.html
    /dojox/grid/enhanced/templates/CriteriaBox.html
    /dojox/grid/enhanced/templates/FilterBoolValueBox.html
    

    我从你之前的问题中得到了这个列表:

    Dojo AMD style templates for EnhancedGrid Filter plugin

    【讨论】:

    • 谢谢。添加这些行之后,我们可以创建 .js 的压缩版本吗?
    • 如果你用分号添加有效代码,你应该可以压缩它,它只是javascript。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 2012-04-24
    • 2014-09-08
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多