Backbone.js 模型未在表单提交时更新,使用主干线+;斯蒂奇

Backbone.js 模型未在表单提交时更新,使用主干线+;斯蒂奇,backbone.js,data-binding,backbone-stickit,Backbone.js,Data Binding,Backbone Stickit,我试图使用库将表单输入绑定到模型,但似乎无法正确更新模型 keyup事件似乎工作正常,如果使用“开始”回调显示它,我可以看到值的变化: bindings: { '#firstName': { observe: 'firstName', onSet: function(val, options) { $('#output').html(val); } }

我试图使用库将表单输入绑定到模型,但似乎无法正确更新模型

keyup事件似乎工作正常,如果使用“开始”回调显示它,我可以看到值的变化:

    bindings: {
        '#firstName': {
            observe: 'firstName',
            onSet: function(val, options) {
                $('#output').html(val);
            }
        }
    }
这是我的代码():

HTML


获取模型属性的方法通常不是通过访问作为对象属性的属性名,而不是像您这样做
this.model.firstName
。就我个人而言,我知道这样实施的案例很少。所谓正确的方法是使用
get
方法:
this.model.get(“firstName”)
。 这将返回当前模型值

我通常为使用的每个模型定义getter和setter,因此我将执行以下操作:

getFirstName: function(){
    return this.get("firstName");
}
只是看起来更好,更“好看”:(但绝对不是必须的)


这是您的小提琴的最新版本:

非常感谢您,完成了。我不敢相信我错过了,这很有道理:-)
var app = {

    Model: Backbone.Model.extend({
        firstName: 'test'
    }),

    View: Backbone.View.extend({
        el: "#view",

        initialize: function(){ 
            this.model = new app.Model();
            this.render(); 
        }, 
        bindings: {
            '#firstName': 'firstName'
        },        
        render: function(){ 
            this.$el.html( this.template ); 
            this.stickit();
        }, 
        events: {
            "submit #form": "submitForm"
        },

        submitForm: function(e) {
            e.preventDefault();
            $('#output').html('output:'+this.model.firstName);
        }

    })
};

var view = new app.View();
getFirstName: function(){
    return this.get("firstName");
}