1

我对 BackboneJs 很陌生,我真的迷路了,面对这个可能很简单的问题整天迷失了。

我尝试创建一个离线运行的应用程序。所以我不使用任何模型或集合,以及 .save、.fetch 等奇怪的东西。我只将 Backbone 用于历史、结构和模板系统。

我的问题是。我有一些 JSON,如何在我的模板中显示它?

  • 我的观点,一切都在工作。我的 json 在 jsonVar 中。

    window.ExposView = Backbone.View.extend({
        template:_.template($('#expos').html()),
        render:function (eventName) {
            console.log(jsonVar); // it's ok here
            $(this.el).html(this.template(),{"output":jsonVar});
            return this;
        }
    });
    
  • 我的模板(同时使用 jQuery mobile),我希望我的 Json 显示在那里。

    <script type="text/tempate" id="expos">
        <div data-role="header" class="header">
            <a href="#" data-icon="back" class="back ui-btn-left">Back</a>
        </div>
        <div data-role="content" class="content">
            <%= output %>
        </div>
    </script>
    

错误:未定义输出..好吧

另一个问题。如果我的模板奇迹般地收到了我的 json 输出,我如何使用 underscoreJs 显示它?

谢谢你的时间,周末愉快。

4

2 回答 2

1

你很亲密。您只需要使用对象调用模板函数。

$(this.el).html(this.template({"output":jsonVar}));
于 2013-09-20T20:35:49.193 回答
0

您刚刚稍微偏离了语法——编译模板是您将 JSON 模型传递给的函数。像这样:

$(this.el).html(this.template({"output":jsonVar}));

您可以通过多种方式进行渲染,但我想您只想将标记添加到 DOM。尝试这样的事情:

var view = new ExposView();
$("body").append(view.render().el);

小提琴

于 2013-09-20T20:36:31.660 回答