0

嗨,我目前正在学习 Backbone,并且有点卡住了。

基本上我正在阅读下面的 JSON 文件的内容并渲染到下划线模板。我能够将参数发送到我的模板并使用以下代码渲染它们:

var template = _.template( movieView, movInfo);
                this.$el.html( template );

以及我的模板的摘录(不是完整的模板):

<section>
        <p><%= movie_symptonis %></p>
    </section>

JSON的一个例子:

[{
            "id": "0",
            "name": "Some movie",
            "date": "2013",
            "time" : "83 MIN",
            "rating" : "CERT/ U",
            "status" : "AVAILABLE NOW",
            "symptonis" : "blah blah blah",
            "galleryImages" : {
                "image" : "one.png",
                "image" : "two.png",
                "image" : "three.png"
            }
        }]

我现在需要为画廊图像中的每个图像呈现一些 html,我熟悉每种方法的下划线 (_.each)。但是我不确定这一切将如何协同工作,任何帮助或朝着正确方向的推动都会很棒。

提前致谢

4

1 回答 1

2

您可以在模板中使用 _.each 方法。它看起来像下面这样。

<section>
    <p><%= movie_symptonis %></p>
    <% _.each(galleryImages, function(galleryImage){ %>
         <img src="<%= this[galleryImage] %>" />
    <% }) %>
</section>

“galleryImages”变量可从您传递给模板的 json 中获得。

<% %> 分隔符将像普通 javascript 一样执行代码。

您可以在模板中使用 javascript 中可用的所有构造

(例如)

<div>
  <% if(condition) { %>
   ... success html ...
  <% } else { %>
    ... failure html ..
  <% } %> 
</div>

您可以探索更多关于在模板中使用构造的信息。但是在模板中引入过多的逻辑并不是一个好主意。但它有助于放置简单的视图逻辑。

希望对您有所帮助。

于 2013-06-21T08:56:02.257 回答