Backbone.js 在嵌套路由上获取主干
我有一个网站和一个职位集合。每次用户选择一个新站点时,id都会被发送到refreshPositions方法,该方法负责执行fetch调用。 获取位置的路径如下所示“…/sites/1/positions” view.js 因此,每当我需要更新页面上的位置时,就会调用refreshPositions,并且siteId参数具有id,我只是不知道如何告诉fetch将路由到类似…/sites/n/positions的位置,其中n将是siteId 很抱歉,如果我错过了我问题的相关信息,我对主干网非常陌生。我明白了,所以您正在从职位集合中调用fetch。如果设置了RESTfull api,那么现成的功能就是获取整个集合中的每个位置对象。如果希望从集合中获得更具体的行为,可以将其写入集合对象定义中Backbone.js 在嵌套路由上获取主干,backbone.js,Backbone.js,我有一个网站和一个职位集合。每次用户选择一个新站点时,id都会被发送到refreshPositions方法,该方法负责执行fetch调用。 获取位置的路径如下所示“…/sites/1/positions” view.js 因此,每当我需要更新页面上的位置时,就会调用refreshPositions,并且siteId参数具有id,我只是不知道如何告诉fetch将路由到类似…/sites/n/positions的位置,其中n将是siteId 很抱歉,如果我错过了我问题的相关信息,我对主干网非常陌生。
var PositionCollection = Backbone.Collection.extend({
initialize: function(models, options) {
this.siteId = (options && options.siteId) || 0;
},
url: function() {
if (!this.siteId) {
return '/positions'; // or whatever
}
return '/sites/' + this.siteId + '/positions';
},
// etc...
});
然后,假设_positions引用PositionCollection的实例,您可以执行以下操作:
refreshPositions: function(siteId) {
this._positions.siteId = siteId; // or wrap in a setter if you prefer
this._positions.fetch({
success: this.onPositionsFetchSuccess.bind(this),
error: this.onPositionsFetchError.bind(this)
});
},
主干.历史.导航'sites/'+siteId+'/positions'?
refreshPositions: function(siteId) {
this._positions.siteId = siteId; // or wrap in a setter if you prefer
this._positions.fetch({
success: this.onPositionsFetchSuccess.bind(this),
error: this.onPositionsFetchError.bind(this)
});
},