Web サービスにこれらのルートがあり、ブラウザーから直接それらのいずれかをヒットすると、正しい値が返されます。
app.get('/repairs', repair.findAll);
app.get('/repairs/:id', repair.findById);
バックボーンにこれを行うように依頼すると、予期せず電話がかかってきます
app.get('/repairs', repair.findAll);
届くと思ったら
app.get('/repairs/:id', repair.findById);
「/repairs/:id」ではなく「/repairs」を呼び出しているように見えるコードは、
var EditRepair = Backbone.View.extend({
el : '.page',
render : function(options) {
var scope = this;
var repair = new Repair({id: options.id});
//This has the correct id
console.log(options.id);
//I would expect this to call /repairs/12344312
//However it calls /repairs
repair.fetch({
success : function(repair){
var template = _.template($('#edit-repair-template').html(), {repair : repair});
scope.$el.html(template);
}
});
}
});
var Repair = Backbone.Model.extend({
urlRoot : 'repairs'
});
var Router = Backbone.Router.extend({
routes: {
'edit/:id' : 'editRepair'
}
});
var editRepair = new EditRepair();
var router = new Router();
router.on('route:editRepair', function(id) {
console.log('Edit Id : ' + id);
editRepair.render({id:id});
});
options.id は console.logged にすることができ、アイテムの正しい ID を示します。これまでに、mongodb の _id とバックボーンの id の違いでいくつかの問題が発生しましたが、これは回避できましたが、私の人生では、これが修理/ ID ではなく修理の呼び出しを発行している理由がわかりません。
どんな助けでも感謝します。