当我们为dojo创建自定义构建时,它还会将各种小部件的html模板内化到该小部件的js文件中。
对于EnhancedGrid的Filter插件,上述情况直到1.8.0并未在1.8.1中修复。我已经使用dojo 1.8.0编写了我的应用程序。
使用dojo 1.8.0时,我是否可以使用内置的EnhancedGrid Filter插件的html模板解决方法
答案 0 :(得分: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
我从上一个问题中得到了这个列表: