骨干js getByCid无法正常工作

时间:2018-08-04 17:17:32

标签: backbone.js backbone-collections

当我在console.log中查看时,主干getByCid无法正常工作,它显示错误为TypeError:test.getByCid不是函数。通过使用at(0).cid,将输出显示为“ c1”,原因是其不起作用。

var test=new Backbone.Collection([ 
   {name:'gowtham',age:10}
]);
console.log(test.at(0).cid); // output as c1
console.log(JSON.stringify(test.getByCid('c1'))); //TypeError: test.getByCid is not a function

1 个答案:

答案 0 :(得分:0)

Backbone.Collection没有方法getByCid,这就是为什么出现此错误的原因。 但是集合具有get方法来获取模型。
它接受一个参数:model | id | cid

因此,如果您想通过cid获取模型,可以像这样collection.get(cidValue)

let collection = new Backbone.Collection();
let test1 = new Backbone.Model({ id: 1, value: 'first' });
let test2 = new Backbone.Model({ id: 2, value: 'second' });

collection.add([test1, test2]);

console.log(collection.get(2));
// find test2 by id

console.log(collection.get('c2'));
// find test2 by cid
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone.js"></script>