Jquery 主干stickit-使用类名和限定的“绑定”;这";
我经常发现自己为Jquery 主干stickit-使用类名和限定的“绑定”;这";,jquery,backbone.js,backbone-stickit,Jquery,Backbone.js,Backbone Stickit,我经常发现自己为stickitjQuery targetIDs提供了某种命名约定,其形式是some aggregate individual element-{#number}以一对一的方式将每个ID与相应的集合元素配对。这是为了确保stickit只更新有问题的特定视图,而不更新其他类似的聚合视图 如果您可以告诉stickit要在其下执行更新的“根”节点,那么似乎应该有一种方法来使用(比如)类名,而不是IDs。例如,如果我定义一个视图,我说绑定:{.individual title:{obser
stickit
jQuery targetID
s提供了某种命名约定,其形式是some aggregate individual element-{#number}
以一对一的方式将每个ID
与相应的集合元素配对。这是为了确保stickit
只更新有问题的特定视图
,而不更新其他类似的聚合视图
如果您可以告诉stickit
要在其下执行更新的“根”节点,那么似乎应该有一种方法来使用(比如)类名,而不是ID
s。例如,如果我定义一个视图
,我说绑定:{.individual title:{observe:“title”}
,stickit
知道title
属性来自这个.model
,因此不需要限定。但是,每当我对左侧应用相同的逻辑时,stickit
就会对文档上具有该类名的所有节点执行更新,而不仅仅是那些位于this.$el
下的节点,其中$el
是我视图的根节点
是否有一个内置的或其他简单的方法来实现这一点,这样我就可以停止
id
使用愚蠢的命名约定对我的所有元素进行命名?或者这就是您应该做的吗?我实际上绑定到表单元素上的name属性,因此消除了id和类名的使用。例如,假设我有以下模型
User.Model = Backbone.Model.extend({
defaults: {
firstname: null,
lastname: null,
phone: null,
personemail: null
}
});
然后创建以下帮助程序:
// Create default binding therefore eliminating repetition
Backbone.View.prototype.createDefaultBindings = function() {
var k, v, _ref, _results;
this._bindings = {};
_ref = this.model.toJSON();
_results = [];
for (k in _ref) {
v = _ref[k];
_results.push(this._bindings['input[name="' + k +'"]'] = { observe: k });
}
return _results;
};
// Helper to overide bindings in our view
Backbone.View.prototype.mergeBindings = function() {
if (this.model) {
this.createDefaultBindings();
}
_.extend(this._bindings, this.bindings);
this.bindings = this._bindings;
};
那么我们可以有以下的观点:
User.Views.Form = Backbone.View.extend({
initialize: function(options) {
this.mergeBindings();
},
render: function() {
this.stickit();
}
});
初始化我们的视图
var view = new User.Views.Form({ model: new User.Model() })
然后,它将通过以下输入绑定到您的模板:
<input name="firstname" type="text">
<input name="lastname" type="text">
<input name="phone" type="text">
<input name="email" type="text">
+1感谢您分享您的特殊布线/管道安装。那有帮助!但是,如果您不是处理表单元素,而是处理span
或h2
或img
,该怎么办?我在文档中发现了以下内容:el(选择器)
(绑定到视图委托(view.$el)的特殊选择器值)。因此,也许您可以执行以下操作:el.您的选择器?让我知道这是否有效。很奇怪。当我在家的时候,我也会看看资料的来源。