首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >om - ajax调用后不更新数据

om - ajax调用后不更新数据
EN

Stack Overflow用户
提问于 2014-06-04 14:41:37
回答 1查看 217关注 0票数 3

我有下面的代码,我认为我做了一些根本错误的事情。

代码语言:javascript
复制
(defn world-view [data owner opts]
  (reify
    om/IInitState
      (init-state [_]
        (om/update! data #(assoc % :world vec)))
    om/IWillMount
      (will-mount [_]
        (go (let [world (<! (get-world (:dimensions opts)))]
              (log (get-in world [9 9]))
              (om/update! data #(assoc % :world world)))))
    om/IRender
      (render [this]
        (log (get :world data))
        (apply dom/table nil
          (om/build-all row (:world data))))))

我正在om/IWillMount中进行远程ajax调用,如下所示:

代码语言:javascript
复制
om/IWillMount
  (will-mount [_]
    (go (let [world (<! (get-world (:dimensions opts)))]
          (log (get-in world [9 9]))
          (om/update! data #(assoc % :world world)))))

我期待从远程调用返回一个2d向量,这是因为我可以用

代码语言:javascript
复制
(log (get-in world [9 9]))

然后,我将使用om/update更新数据结构。

但是当render被调用时,数据似乎没有被更新,我可以尝试记录数据结构来测试这一点。

代码语言:javascript
复制
log (get :world data))

这没有任何记录。

我看不出我做错了什么,也不知道为什么数据结构没有更新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-05 14:34:59

om/update!将游标设置为给定的值,因此基本上是将一个函数分配给游标。我相信你应该用om/transact!代替。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24040522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档