主干.js使用下划线在模板中显示 JSON

Backbone.js display JSON in template using underscore

本文关键字:显示 JSON js 下划线 主干      更新时间:2023-09-26

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

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

我的问题是。我有一些 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移动版),我希望我的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 输出,我如何使用下划线 Js 显示它?

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

你离得很近。您只需要使用对象调用模板函数。

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

你刚刚稍微偏离了语法——编译的模板是你将 JSON 模型传递给的函数。 喜欢这个:

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

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

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

小提琴