【发布时间】:2014-06-21 10:12:42
【问题描述】:
第一次尝试使用主干模型集合将数据从主干发布到 REST。
define(["underscore" , "backbone"],function(_ , Backbone){
var CustomerModel = Backbone.Model.extend({
urlRoot: 'http://myresturl/api/CusWeb',
initialize: function(){
},
defaults : {
UID: "00000000-0000-0000-0000-000000000000",
Sex: 0,
Name: "",
Company: "",
Address: "",
Email: ""
}
});
return CustomerModel;
});
define(["underscore","backbone","models/CustomerModel"] , function(_ ,Backbone,CustomerModel){
var CustomerCollection = Backbone.Collection.extend({
url: 'http://myresturl/api/CusWeb',
model:CustomerModel
});
return CustomerCollection;
});
我正在尝试通过单击主干视图中的按钮将数据从主干发布到 REST URL。
define(["jquery" ,
"underscore" ,
"backbone" ,
"text!templates/Customer/registerCustomerTemplate.html",
"models/CustomerModel",
"user",
],function($ , _ , Backbone, RegisterDescriptionTem, CustomerModel, Customer){
var userObj = new Customer();
var ContainerRegisterView = Backbone.View.extend({
el : $("#webbodycontainer"),
initialize : function(){
},
events : {
'click #register' : 'registerUser'
},
registerUser : function(){
this.model.set({
UID: "00000000-0000-0000-0000-000000000000",
Sex: 1,
Name: "",
Company: "",
Address: "",
Email: ""
});
this.model.save();
console.log(this.model.get('Sex'));
},
render : function(){
var _registerDes = _.template(RegisterDescriptionTem);
this.model = new CustomerModel();
this.$el.append(_registerDes((this.model.toJSON())));
}
});
return ContainerRegisterView;
});
console.log(this.model.get('Sex')); 显示在浏览器的控制台 (1) 中,但数据未保存到数据库。
这是路由器:
define([
.....
'views/Customer/ContainerRegister',
], function(ContainerRegister){
var AppRouter = Backbone.Router.extend({
routes: {
......
}
var app_router = new AppRouter;
app_router.on('route:registerAction', function(register){
if(window.currentSection){
window.currentSection.remove();
}
window.currentSection = new ContainerRegister({});
$('#webbodycontainer').html(window.currentSection.$el);
window.currentSection.render(register);
});
});
感谢您提供的任何其他信息。谢谢。
【问题讨论】:
-
保存模型时,是否在网络的开发者工具页面看到对服务器的请求?
-
@Sergey:不,我没有。
-
好吧,如果您没有对 REST 的请求,那么您在 Backbone 应用程序中有错误。尝试在
this.model.save();之前设置debugger;并调试 -
@Sergey : 我必须设置
backbone debugger扩展来调试还是主干有自己的调试器?我没有通过谷歌搜索找到它。 -
不确定这是否与问题有关,但
render()需要在您的视图中返回this。
标签: javascript rest backbone.js