backbone js getByCid 不工作

backbone js getByCid not working

当我在 console.log 中查看时,backbone 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

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>