如何将数据传递到 Backbone.js 中的视图?

问题描述 投票:0回答:1

我正在尝试将数据传递到 Backbone.js 中的

SingleTodo
视图。但是,它没有正确通过。
为了更清楚地了解,请参阅下面给出的代码和输出。

代码:
temp.html

<h1>This is Temp</h1>

<div id="app"></div>

<script type="text/template" id="app-template">
  Title: <%= title %><br/>
  isCompleted: <%= isCompleted %>
</script>

temp.js

const SingleTodo = Backbone.Model.extend({
  defaults: {
    title: "",
    isCompleted: false
  }
});

const TodoView = Backbone.View.extend({
  el: "#app",
  template: _.template($("#app-template").html()),

  initialize: function () {
    this.model = new SingleTodo();
    this.render();
  },

  render: function () {
    this.$el.html(this.template(this.model.toJSON()));
    return this;
  }
});

$(document).ready(function () {
  const todoView = new TodoView();

  todoView.model.set({
    title: "A simple to-do",
    isCompleted: true
  });
});

输出:
预计

获取

我的代码有什么问题导致我没有得到预期的输出?

javascript backbone.js
1个回答
0
投票

您在

initialize
TodoView
方法中缺少以下行:

this.listenTo(this.model, 'change', this.render);

旁白:我建议不要在视图的

this.model
方法中设置
initialize
,而是从外部传递它。在您的示例中,更改
$(document).ready
处理程序的第一行:

const todoView = new TodoView({model: new SingleTodo()});
© www.soinside.com 2019 - 2024. All rights reserved.