【问题标题】:Selecting dynamically created models within a collection在集合中选择动态创建的模型
【发布时间】:2012-10-01 19:46:55
【问题描述】:

我有一组带有 person 类的“人名”输入,我正在尝试执行以下操作:每次在输入中记录一个 keyup 时,获取该输入的 data-hash 属性,如果在 People 集合中还没有具有该散列的 Person 实例,添加一个模型。否则只需更新哈希匹配的模型。

$('.person').keyup(function(){

var myHash = $(this).attr('data-hash'),
 myName = $(this).val(),
 checkMe = people.where({'hash':myHash});

if ( checkMe.length > 0 ){

//update name value where hash matches

}

else {
 people.add({
   'name':myName,
   'hash':myHash
  });
}
});

我使用 Backbone 的 add 方法将这些模型添加到集合中,而不是使用 var person = new Person

所以现在当我调用people.models 时,我有许多元素,但我不知道如何选择它们。通常你会说person.get('attribute'),但如果没有var 名称,我不确定如何选择模型。我可以在代码中输入什么而不是 //update name value where hash matches

【问题讨论】:

    标签: backbone.js backbone.js-collections


    【解决方案1】:

    checkMe 应该是您尝试更新的模型数组。遍历它们并使用 set 方法:

    $('.person').keyup(function(){
    
    var myHash = $(this).attr('data-hash'),
     myName = $(this).val(),
     checkMe = people.where({'hash':myHash});
    
    if ( checkMe.length > 0 ){
      _.each(checkMe, function(person){
        person.set({
          'name':myName,
        });
      });
    }
    
    else {
     people.add({
       'name':myName,
       'hash':myHash
      });
    }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多