我想更新记录:
www.mywebsite.com/REST/mytable/16
但;对于mytable,我必须提供两个强制参数:
www.mywebsite.com/REST/mytable?param1=this¶m2=that
如果我想使用以下内容从此集合中获取模型,则无法找到记录:
www.mywebsite.com/REST/mytable?param1=this¶m2=that/16
这可以通过以下代码实现:
var Model = Backbone.Model.extend({
idAttribute : "ID"
});
var Col = Backbone.Collection.extend({
model : Model,
url : $scope.base + $scope.selected.table.entity.Name + "?param1=1¶m2=2"
});
connector.fetch().then(function () {
var record = connector.get(toBeChangedRecordId);
record.set(props); //attributes as json
.save({
success : $scope.putCallback,
error : $scope.putCallback
});
}
它不起作用,因为在上面的url中,没有找到记录。而不是这个,我需要另一种方式,所以我可以给我的ID来改变记录(因此www.mywebsite.com/REST/mytable/16 + JSON object
。这怎么可能?
答案 0 :(得分:1)
当您使用这样的动态网址时,您可以将url method包装在类似的函数中
Backbone.Model.extend({
idAttribute : "ID",
url: function() {
var idStr = ''
if (this.isNew()) {
idStr = '/' + this.get('id')
}
return 'http://www.mywebsite.com/REST/mytable' + idStr + '?param1=' + this.get('param1') + '¶m2=' + this.get('param2');
}
});
另外,您声明您的url在语义上声明错误。您的查询字符串位置错误。