使用Backbone + Sprockets在UserModel
内拨打AuthenticationView
。
我只是不知道这样做的好方法。
这是我的观点(assets/js/views/AuthenticationView.js
):
var AuthenticationView = Backbone.View.extend({
el: $('.authentication-form'),
events: {
'keyup input[name=email]' : 'validationScope',
'keyup input[name=password]' : 'validationScope',
'submit form[data-remote=true]' : 'authenticate'
},
render: function() {
},
authenticate: function() {
// Here I'm going interact with the model.
}
});
这是我的模型(assets/js/models/UserModel.js
):
var UserModel = Backbone.Model.extend({
url: '/sessions'
});
如何在视图和模型之间进行交互?
请记住:它们是分开的文件。
答案 0 :(得分:1)
将构造函数放在一起将是第1步 - 单独的文件无关紧要,您可以使用Browserify / requirejs或只是将这些内容放在全局范围内。从那里开始,由于将对象传递给具有属性名称“model”的视图构造函数,因此会自动将该值分配给视图this.model
。因此,如果我们在视图中有initialize
方法,我们可以看到:
initialize: function (options) {
console.log(this.model); // User instance
this.model.on('update', function () {});
}
因此我们可以通过对象的model
属性将实例化的模型传递到视图中:
var model = new UserModel();
var view = new AuthenticationView({ model: model });
答案 1 :(得分:0)
http://www.joezimjs.com/javascript/lazy-loading-javascript-with-requirejs/这里有关于js模块延迟加载的很棒的文章,其中使用了使用backbonejs和requirejs的示例