当我们为 dojo 创建自定义构建时,它还将各种小部件的 html 模板内化到该小部件的 js 文件中。
对于 EnhancedGrid 的 Filter 插件,直到 1.8.0 才出现上述情况,并在 1.8.1 中修复。我已经使用 dojo 1.8.0 编写了我的应用程序。
在使用 dojo 1.8.0 时,是否有任何解决方法可以让增强网格过滤器插件的 html 模板内部化
当我们为 dojo 创建自定义构建时,它还将各种小部件的 html 模板内化到该小部件的 js 文件中。
对于 EnhancedGrid 的 Filter 插件,直到 1.8.0 才出现上述情况,并在 1.8.1 中修复。我已经使用 dojo 1.8.0 编写了我的应用程序。
在使用 dojo 1.8.0 时,是否有任何解决方法可以让增强网格过滤器插件的 html 模板内部化
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 文件中添加这一行并创建一个新的 build 。
您必须对运行时加载的所有 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
我从你之前的问题中得到了这个列表: