我试图通过创建一个View输出骨干模型的一些dafault值,但节点显示错误“对象#的属性'$'不是_.extend._ensureElement的函数”。我可以直接显示模型中的默认值,就像我在下面的代码中所做的那样但不是通过使用视图。为了显示一个例子,我已经注释掉了// myView = new firstView();所以你可以看到输出但很快我删除了我得到错误的评论。请让我知道缺少什么,我做错了什么。已经尝试将代码包装在$(function(){})中,但没有运气。
express = require('express');
$ = require('jQuery');
_ = require('underscore');
Backbone = require('Backbone');
app = express();
app.use(express.static(__dirname + ''));
app.use(express.bodyParser());
app.listen(process.env.PORT || 3000);
Person = Backbone.Model.extend({
defaults: {
'name': 'Joe Blog',
'job': 'Web Developer'
}
});
firstPerson = new Person();
firstView = Backbone.View.extend({
initialize: function() {
this.render();
},
render: function() {
console.log(firstPerson.get('job'));
return this;
}
})
//myView = new firstView();
console.log(firstPerson.get('name'));
答案 0 :(得分:7)
Backbone代理jQuery库。它通常通过搜索全局$
变量来实现。由于您在节点环境中执行代码,因此您需要手动执行此操作:
var Backbone = require('backbone'),
$ = require('jQuery');
Backbone.$ = $;
作为旁注,您确实应该在变量前面使用var
关键字,以便在函数范围内创建变量。 (见this question)