我正在尝试在线学习一个简单的骨干教程。问题是当我点击“发布”时,推文被发布在日志中,但立即被清除。我不确定为什么控制台会在打印出 tweets.toJSON() 后立即自行清理。我正在使用 node 和 livereload2 在保存后加载页面。我不认为它是 livereload,因为无论 livereload 是否运行,行为都是相同的。
- 我认为一切都包含在自我调用匿名 jquery 函数中以进行范围界定。这样变量就不会暴露在 DOM 的窗口级别。
- 它将 JQuery 变量作为 $ 符号,以便我可以在函数内部使用它。
我读对了吗?
感谢您的帮助 !。
<html>
<head>
<title>Backbone Twitter App</title>
</head>
<body>
<h1> Backbone for twitter </h1>
<form id="new-tweet">
<label>Author:</label> <input id="author-name" name="author-name" type="text" />
<label>Status:</label> <input id="status-update" name="status-update" type="text" />
<button>Post</button>
</form>
<hr/>
<script type="text/javascript" src="underscore.js"></script>
<script type="text/javascript" src="jquery-1.9.0.js"></script>
<script type="text/javascript" src="backbone.js"></script>
<script type="text/javascript">
(function($) {
var Tweet = Backbone.Model.extend({
defaults:function(){
return {
author: '',
status: ''
}
}
});
var TweetsList = Backbone.Collection.extend({
model: Tweet
});
var tweets = new TweetsList();
$(document).ready(function(){
$('#new-tweet').submit(function(ev){
console.log('button pressed');
var tweet = new Tweet({author: $('#author-name').val(), status: $('#status-update').val()});
tweets.add(tweet);
console.log(tweets.toJSON());
});
});
})(jQuery);
</script>
</body>
</html>