【问题标题】:Unable to get data from model for rendering in Handlebars template无法从模型中获取数据以在 Handlebars 模板中进行渲染
【发布时间】:2013-08-31 17:26:49
【问题描述】:

我正在尝试将 Handlebars 模板与 Backbone w/ Marionette 一起使用。也许我现在咬掉的框架比我现在能咀嚼的还要多,但如果我能完成最后一个问题,那么我就会把所有的部分都解决掉。

所以我现在拥有的是使用 Handlebars 模板呈现的 Marionette 布局。模板中的静态代码正在渲染,所以我假设至少基本接线是正确的。我在模型的 fetch 调用的成功回调中添加了一些调试代码,如下所示:

success: function(model, response, options) {
    $.log(response);
}

我得到的响应是这样的(数据已清理,但你明白了):

{
    "adminLoginId": 0,
    "deviceHashAVInfos": [
        {
            "foo": "bar"
        }
    ],
    "orgId": 0,
    "timeTaken": 39,
    "numHits": 1,
    "message": "success",
    "success": true
}

所以,它似乎正在从服务中获取数据。但就我的一生而言,我似乎无法正确读取数据的语法。只是试图访问 orgId,例如,我尝试过:{{orgId}},{{this.orgId}},{{data.orgId}},{{response.orgId}},{{attributes.orgId}}。我什至尝试将 orgId 设置为模型中的默认值。

【问题讨论】:

  • 你的视图的渲染方法代码是什么?

标签: backbone.js handlebars.js marionette


【解决方案1】:

您不应该使用 Marionette 布局来显示模型(它用于显示区域中的视图)。相反,请尝试使用项目视图并将模型作为参数传递,就像您可以在此处看到的那样:https://github.com/davidsulc/marionette-gentle-introduction/blob/master/assets/js/apps/contacts/show/show_controller.js#L14

您可以在此处了解有关使用基本视图显示模型的更多信息:http://samples.leanpub.com/marionette-gentle-introduction-sample.pdf

【讨论】:

  • 谢谢。我确实打算以这种方式组织页面,但忘记了它。不幸的是,我似乎仍然无法获得数据。我将更新我的问题以反映新的重构。
  • 好吧,算了。在更新我的问题详细信息的过程中。我发现了问题。 “缺少逗号”品种的一个非常愚蠢的问题。当我创建我的视图实例时,我忘了指定模型! 叹息我知道它最终会变成那样愚蠢的东西,但我脑子里有很多新东西要跟踪。非常感谢您的帮助。
猜你喜欢
  • 2013-01-22
  • 2013-01-27
  • 1970-01-01
  • 2016-12-12
  • 2018-10-08
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多