我正在尝试在线跟踪一个简单的骨干教程。问题是当我点击“发布”时,推文会在日志中发布,但会立即清除。我不确定为什么控制台在打印出tweets.toJSON()之后立即清理自己。我在保存后使用node和livereload2来加载页面。我不认为它是livereload,因为无论livereload运行与否,行为都是相同的。
我是否正确阅读?
感谢您的帮助!
<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>
答案 0 :(得分:0)
您的问题是,当您单击按钮并重新加载页面时,表单正在提交。
在submit()方法中,您可以调用ev.preventDefault()来停止提交表单。