在下面的代码中,当我想使用get()方法时,如代码中所示返回undefined。有什么问题。
<script type="text/javascript">
(function() {
window.App = {
Models: {},
Views: {}
};
window.vent = _.extend({}, Backbone.Events);
})();
//Model
App.Models.User = Backbone.Model.extend({
url: '/users'
});
var user = new App.Models.User();
user.fetch({
success: function (user) {
console.log(user.get('firstname'));
}
});
</script>
答案 0 :(得分:1)
这是因为success
回调的值不是Backbone模型,它是原始服务器响应的原因。要在获取数据后立即显示名字,您可以使用延迟(请参阅http://api.jquery.com/jQuery.Deferred/):
var user = new App.Models.User();
$.when(user.fetch()).done(function(){
console.log(user.get("firstname");
});
答案 1 :(得分:0)
您的示例在我这里工作的是http://jsfiddle.net/YYM43/
尝试查看是否正确加载了libs(Backbone.js ...)。
(function() {
window.App = {
Models: {},
Views: {}
};
window.vent = _.extend({}, Backbone.Events);
})();
//Model
App.Models.User = Backbone.Model.extend({
url: 'http://echo.jsontest.com/name/betty/age/22'
});
var user = new App.Models.User();
user.fetch({
success: function (user) {
console.log(user.get('age'));
}
});