gpt4 book ai didi

javascript - 主干网在保存时不会触发请求

转载 作者:行者123 更新时间:2023-11-28 02:26:10 25 4
gpt4 key购买 nike

我得到了这个非常简单的访客模型

define([
], function() {
Guest = Backbone.Model.extend({

urlRoot : ftd.settings.rest + '/guest',

defaults: {
id : '',
name : '',
accessToken : ''
},

validate: function( attr ) {
var errors = [];
if(attr.name.length < 4) {
errors.push({message : "You nickname, must be atleast 4 chars", name : 'guestNickname'});
}
return errors;
}
});

return Guest;
});

然后我得到了一个首页 View ,访客在其中注册,基本上这在单击提交按钮时发生。

createGuest: function( ev ) {
ev.preventDefault();
// Get nickname.
var guest = new Guest();
guest.bind( 'error', function( model, errors ) {
_.each( errors, function( err ) {
$('input[name=' + err.name + ']').addClass('invalid');
// add a meesage somewhere, using err.message
}, this );
});

guest.save({
'name' : $('input[name="guestNickname"]').val()
}, {
wait:true,
success:function(model, response) {
console.log('Successfully saved!');
},
error: function(model, error) {
console.log(error);
}
});
},

所以我从输入元素中获取名称,然后将其放入保存方法中。问题是,Backbone 不会向服务器发送请求,而只是触发错误事件。它打印一个空的错误数组。我做错了什么?

最佳答案

如果validation,您不应该返回任何内容成功。

由于您返回一个空数组,因此它假定该数组是验证错误。

试试这个:

validate: function( attrs ) {
var errors = [];
if(attrs.name.length < 4) {
errors.push({message : "You nickname, must be atleast 4 chars", name : 'guestNickname'});
}
if(errors.length > 0){
return errors;
}
}

关于javascript - 主干网在保存时不会触发请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14908457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com