【问题标题】:Mix and match Declarative and Programmatic declaration? (Dojo/JS)混合和匹配声明性和程序化声明? (道场/JS)
【发布时间】:2012-01-25 12:41:44
【问题描述】:

我正在开发一个旧代码库,它使用 dojo 数据网格和 JsonRestStore,使用声明性方法(在 HTML 中)。我现在正在尝试调整它以使用更新的 dojo.store.JsonRest 。

当我在 HTML 中声明 JsonRest 和 ObjectStore 时,它​​可以工作。

我想使用 json.store.Cache 作为我的存储,并使用 dojo.store.JsonRest 和 dojo.store.Memory 支持它。 json.store.Cache 的构造函数有两个参数。

a) 是否可以在 HTML 声明式样式中定义构造函数参数?

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

// 5. 已评估:模块是通过define定义的,加载器已评估工厂并计算结果。

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

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

【问题讨论】:

    标签: javascript dojox.grid.datagrid dojo


    【解决方案1】:

    我自己回答这个问题,因为我后来想通了。声明式和程序式风格的混合搭配似乎没有问题。

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

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

    【讨论】:

      猜你喜欢
      • 2011-02-23
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-18
      • 2015-04-29
      相关资源
      最近更新 更多