javascript - Backbone JS 正确填充模型/集合

标签 javascript php templates backbone.js

我有一个包含一个模型的集合。在我的模板中我应该能够执行以下操作:

<% _.each(collection, function(model) { %> 
  <p>logged in <%= model.username %>!</p>
<% }); %>

但我发现我需要做:

<% _.each(models, function(model) { %> 
<p>logged in <%= model.attributes.username %>!</p>
<% }); %>

我不确定到底是什么问题,但模型没有正确填充。任何人都知道为什么会发生这种情况以及如何在模型中设置值,以便我可以循环模型集合并仅使用 model.username 访问值?

提前谢谢您。

这是我的模型和收藏:

var AccountModel = Backbone.Model.extend({
defaults: 
{
    username: "bob"
}
});

var AccountCollection = Backbone.Collection.extend(
{
    model: AccountModel,
    url: "/php/account-details.php",

    parse: function(data, xhr)
    {
   return data
    },

    initialize: function()
    {

    }
});

这是我的获取函数:

fetchAccountCollection: function(){

   var $this = this;

$this.homepageAccountCollection = new AccountCollection();

$this.homepageAccountCollection.fetch(
{
    dataType: "json",
    cache: false,

    success: function(collection)
    {
      Backbone.trigger('accountcollection:loaded', collection);
    },

    error: function()
    {
      console.log("fetchAccountCollection: error");
    }
});

},

当成功函数被调用时,触发器将调用 Controller 内的渲染函数:

renderAccount: function(collection)
{
  var $this = this;

  $this.loginPageView = new LoginView(
  { 
    el: '#login-form',
    template: 'loggedin-template',
    collection: collection
  });

$this.loginPageView.render();
},

当$this.loginPageView.render();时调用后会执行以下代码:

render: function() 
{
var collection = this.options.collection;
    var tpl = _.template($(this.options.template).html(), collection);
    this.$el.html(tpl);

    return this;
},

用户名的值是从 PHP 脚本返回的,如下所示:

         $array=array('username' => $user['username']);
         echo json_encode($array);

最佳答案

Underscore 的 each 方法(以及许多其他方法)直接混合到集合中。使用 collection.each(function () { ... }) 而不是 _.each(collection ...)

关于javascript - Backbone JS 正确填充模型/集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20830939/

相关文章:

php - ajax加载不同内容后如何刷新Select2下拉菜单?

php - 将数据库更改从开发迁移到实时

c++ - 解密 C++ 模板错误消息

javascript - 将鼠标悬停在列表下拉列表上时旋转图像,并在鼠标悬停时旋转回来

javascript - 如何使用 Javascript for 循环显示它使用实时计数循环的次数?

php - 刷新页面时 session 变量重置(注销用户)

c++ - 在 C++11 中将 PrintContainer 预处理器定义转换为模板

c++ - 类引用授予对私有(private)成员的访问权限

javascript - 是否可以在 hapi 中定义全局基本路径

javascript - 如何使用 jquery 将 id 添加到 html 标签