BackBone中的信息在哪里?

时间:2012-07-18 08:23:15

标签: backbone.js coffeescript underscore.js

当向服务器抛出savecreate时,服务器会使用新的随机创建的对象进行响应。该对象可以是许多不同类中的一个,Backbone响应这些区分对象并加载相对视图。

我似乎只能在引导程序上计算出这个逻辑,因为还没有加载视图,所以我可以根据我从服务器随机接收的信息,引导程序并导航到该特定路径。

但是,当我保存一个对象并收到我的返回数据时,我一直想弄清楚如何做到这一点。

这是我的代码细分。

信息已保存。

@model.save(@model.toJSON(),

我有一个听众等待这次保存:

constructor: (options) ->
  super(options)
  @model.bind 'change:verb', _.chooser, options

_。maestra_chooser是我在实用带中的混合物:

_.mixin
  _chooser : (item) =>
    console.log item

这里要注意的事情。遗憾的是,变量item与刚保存的@model相同。那里没有新数据。

我希望item是来自服务器的新变量数据,以便我可以获取该数据,查看它是什么类型的数据,然后路由到相关视图。 / p>

我相信这也是我在构建一个不合理的想法的地方。但由于我理解不足以解释的原因。

有没有人知道 where 我可以从服务器访问返回数据并适当地将我的应用程序导航到相应的路径?

其他信息

这是我适当地引导它的方式:

window.router = new Project.Routers.QuestionsRouter(
{
  words: #{ @words.to_json.html_safe }  
});

Backbone.history.start();

router.navigate("#{@words.kind_of?(Array) ? "bar" : "foo"}", {trigger: true, replace: true})    

1 个答案:

答案 0 :(得分:1)

更改事件只会为您提供模型和更改的值...

您可以将成功回调传递给您的保存:

@model.save(@model.toJSON(), success: (model, resp) ->
    # do whatever with resp
)

其中resp将包含来自服务器的原始响应,model将包含模型的服务器端状态。

您还可以按照评论中提到的那样绑定到模型的同步事件:

@model.bind 'sync', _.masetra_chooser, options

使用参数调用sync回调:model,resp和options其中options是传递给save的选项集。 https://github.com/documentcloud/backbone/blob/9a12b7640f07839134e979b66df658b70e6e4fe9/backbone.js#L383

不确定为什么您希望从保存更改页面的数据中获取数据。似乎有点奇怪。

在您的模型中没有保存后,您希望接收哪种类型的数据?