[英]Backbone constructor not working
I'm trying a simple backbone program using express which dispalys name and twitter handle and allows its update by using a template in jade. 我正在尝试使用express的简单主干程序,该程序会显示名称和Twitter句柄,并允许使用jade中的模板对其进行更新。 However, its not working.
但是,它不起作用。
Here is my server.js file: 这是我的server.js文件:
var express= require("express"),
bodyparser= require("body-parser");
var app= express();
app.use(express.static(__dirname+ "/public"));
app.use(bodyparser.json());
app.get("/", function(req, res){
res.render("index.jade");
});
app.listen(3002);
Here is my index.jade file: 这是我的index.jade文件:
doctype html
#main
script(type="text/template" id="showuser")
<h1> <%= name %> </h1>
<p>Twitter: <a href='"http://twitter.com/"<%= twitter %>'> <%= twitter %> </a> </p>
script(type="text/template" id="edituser")
<h1> Editing </h1>
<p> Name: <input type="text" name="name" id="name" value="<% name %>" /> </p>
<p> Twitter Handle: <input type="text" name="twitter" id="twitter" value="<% twitter %>" /> </p>
<p> <button> Update </button> </p>
script(src= "jquery.js")
script(src= "underscore.js")
script(src= "backbone.js")
script(src= "theapp.js")
Here is my theapp.js file: 这是我的theapp.js文件:
var User= new Backbone.Model.extend({});
var Showview= new Backbone.View.extend({
template: _.template($("#showuser").html()),
initialize: function(){
this.model.on("change", this.render, this);
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});
var Editview= Backbone.View.extend({
template: _.template($("#edituser").html()),
events: {
"click button": "savechange"
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
return this;
},
savechange: function(){
this.model.set({name: $("#name").val(), twitter: $("#twitter").val()});
}
});
var me= new User({name: "Anna", twitter: "anna9090"}),
showview= new Showview({model: me}),
editview= new Editview({model: me});
$("#main").append(showview.render().el).append(editview.render().el);
I am getting an error: undefined is not a function on the line: 我收到一个错误:undefined不是函数:
var me= new User({name: "Anna", twitter: "anna9090"}),
var me = new User({name:“ Anna”,twitter:“ anna9090”}),
in the file theapp.js 在文件theapp.js中
You should remove the new
operator when you are extending the Backbone Model. 扩展骨干模型时,应删除
new
运算符。
var User = Backbone.Model.extend({});
// ...
var me = new User({name: "Anna", twitter: "anna9090"}),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.