让我说我有:
var Book = Backbone.Model.extend();
var Collection = Backbone.Collection.extend({
model: Book,
url: '/books',
initialize: function(){
this.fetch();
})
})
Run Code Online (Sandbox Code Playgroud)
我怎样才能改变Collection的url实例化一个新的集合时?
var AdventureBooks = new Books({ url: '/books/adventure' }) 不起作用
var AdventureBooks = new Books({ category: 'adventure' })
Run Code Online (Sandbox Code Playgroud)
并在集合定义中:
url : '/books/' + this.category 也不起作用.
谢谢.
pon*_*zao 39
以下应该有效:
var AdventureBooks = new Books();
AdventureBooks.url = '/books/adventure';
Run Code Online (Sandbox Code Playgroud)
Ray*_*nos 28
var Book = Backbone.Model.extend({
"url": function() {
return '/books/' + this.get("category");
}
});
Run Code Online (Sandbox Code Playgroud)
Juh*_*äki 13
由于某种原因,传递给Collection构造函数的参数(例如"url")未设置为该对象.该集合仅使用其中的少数(模型和比较器).
如果要通过构造函数传递url,则需要创建初始化方法,将必要的参数复制到对象:
var Book = Backbone.Model.extend({
initialize: function(props) {
this.url = props.url;
}
}
var book = new Book({url: "/books/all"});
Run Code Online (Sandbox Code Playgroud)
就像Daniel Patz所指出的那样,问题在于你如何实例化这个系列.我现在只是努力解决这个问题,所以我想我会更新这个,即使问题有些陈旧.
第一个参数预计是一系列模型,后面会有选项.这应该工作:
var AdventureBooks = new Books([], { url: '/books/adventure' })
Run Code Online (Sandbox Code Playgroud)
如果你想要一个动态URL,那么Raynos的回答可能就是你想要的.
| 归档时间: |
|
| 查看次数: |
39945 次 |
| 最近记录: |