混合和匹配声明和编程声明?(Dojo/JS)

Mix and match Declarative and Programmatic declaration? (Dojo/JS)

本文关键字:声明 Dojo JS 编程 混合      更新时间:2023-09-26

我正在使用一个旧的代码库,该代码库使用dojo datagrid和JsonRestStore,使用声明性方法(在HTML中)。我现在正试图将其调整为使用更新的dojo.store.JsonRest.

当我用HTML声明JsonRest和ObjectStore时,它就起作用了。

我想使用json.store.Cache作为我的商店,dojo.store.JsonRest和dojo.sstore.Memory支持它。json.store.Cache的构造函数接受两个参数。

a) 是否有可能以HTML声明性风格定义构造函数参数

我不想接触Datagrid的(声明性)代码,所以我尝试在dojo.addOnLoad中设置Grid的存储。我在dojo.js的第402行的Firebug中遇到了一个奇怪的错误,实际上是一个注释:

//5。评估:模块是通过定义定义的,加载程序已经评估了工厂并计算了结果。

我的猜测是,这个错误与dojo.js无关,异常实际上发生在某个地方的闭包中(我想我以前见过这种情况)。

b) 有可能以这种方式混合和匹配声明式和程序式风格吗?如果是,我应该在什么事件上设置网格的存储

我稍后会自己回答这个问题。混合和匹配声明式和程序式风格似乎没有问题。

我从使用dojo.addOnLoad改为使用dojo.ready,但我不认为这是问题所在。

我试图在对datagrid.setQuery的调用中设置数据网格的查询,然后用datagrid.setStore设置存储。无论我按哪个顺序尝试(先查询还是先存储),它都不起作用。事实证明,在对setStore的调用中,必须将两者设置在一起。该方法接受该查询作为其第二个参数。这解决了我的问题。