【发布时间】:2017-08-01 08:37:59
【问题描述】:
我正在尝试通过将 View 和 Model 声明分成模块(Browserify)来制作功能最少的 Backbone.js 应用程序。我的代码:
index.html
<head>
<script src="bundle.js"></script>
</head>
<body>
<div id="myDiv">Loading...</div>
</body>
<script type="text/template" id="myTemplate">
Test Content
</script>
模型.js
var Backbone = require('backbone')
Backbone.$ = $
Model = Backbone.Model.extend({
});
module.exports = Model;
View.js
var _ = require('underscore')
var $ = require('jquery')
var Backbone = require('backbone')
Backbone.$ = $
View = Backbone.View.extend({
el: '#myDiv',
template: _.template($('#myTemplate').html()),
initialize: function(){this.el.append(this.$el.html(this.template()));},
});
module.exports = View;
main.js
var _ = require("underscore");
var Backbone = require("backbone");
var $ = require("jquery");
var View = require("./View");
var Model = require("./Model");
Backbone.$ = $;
$(document).ready(function(){
var model = new Model();
var view = new View({model: model});
});
在控制台浏览:
browserify main.js -o bundle.js -d
错误:
Uncaught TypeError: Cannot read property 'replace' of undefined
【问题讨论】:
-
一个想法——在你看来你使用
this.el.append...你的意思是this.$el.append吗?我不熟悉应用于原始 DOM 元素的append。
标签: javascript backbone.js browserify