3

我想将 webix 表与骨干集合集成,如 webix 文档 ( http://docs.webix.com/desktop__backbone_collections.html ) 中所示,但它似乎不起作用。对象同步调用发生,但没有加载数据。

   budgets = new Backbone.Budget.Collection(window.budget)
   list =
        width               : 320
        view                : "datatable"
        id                  : "budget_list"
        backbone_collection : budgets
        select              : true
        scroll              : false
        columns             :[
                {header : "Month",             id: "budget_month"}
                {header : "Year",              id: "budget_year"}
                {header : "Currency",          id: "base_currency"}
                ]

        on: {
                onAfterRender       :  () ->
                        console.log("Sync ", @_settings)
                        @sync(@_settings.backbone_collection)

                }
4

2 回答 2

2

从 onAfterRender 调用 .sync 会导致问题,因为同步会导致重新渲染数据表,这会触发新的同步并导致新的重新渲染等。

要打破这个循环,你可以使用 webix.once 来保证处理程序只执行一次。

检查更新的片段http://webix.com/snippet/5dd61a47

于 2014-12-11T12:19:25.497 回答
1

您所访问的服务器很可能 1) 未指定'Content-type: application/json',并且客户端在响应中拒绝了该服务器;并且,或 2) 不响应 OPTIONS 飞行前因此抛出一个CORS 安全块。如果不访问服务器,两者都很难解决。

Curl 不会受到 CORS 问题的影响,但基于浏览器的 REST 客户端会——因此最能代表您的问题。

尝试使用带有 UI 中给出的 URL 和标头的Chrome 高级休息客户端。

如果您不知道 URL 和标头,则在运行该 UI 时嗅探您的请求。

于 2014-12-10T07:31:17.493 回答