我对 Backbone.js 很陌生,但我喜欢 jQuery。然而,我喜欢 Backbone 将代码组织成模型、视图和集合的方式,但我仍然无法理解在编写 JS 代码时如何使用它。
例如,以我在 jQuery 中编写的这个简单代码为例,当用户在输入框中键入时,它会附加一个建议框:
// this is the model
var questions = [
{question: "what is your name"},
{question: "How old are you"},
{question: "what is your mothers name"},
{question: "where do work/or study"}
];
// search data function
function searchData(datas,term){
return _.filter(datas, function(obj) {
return ~obj.question.toLowerCase().indexOf(term);
});
}
// Events
$("#suggestinput").on({
keyup: function(){
var results = searchData(questions, this.value);
$("#suggestions")
.addClass("active")
.html(_.reduce(results, function(last, q){
return last + "<p>" + q.question + "</p>";
}, ""));
},
blur: function () {
$("#suggestions").removeClass('active');
$("#suggestions").html(" ");
},
focus: function () {
if ( $(this).val() === "" ) {
$("#suggestions").addClass('active');
$("#suggestions").html("<p> start typing a question </p>");
}
}
});
关于使用 Backbone.js 结构构建这样的迷你功能有什么建议吗?我并不是说要编写整个代码,只是一个粗略的指导或解释将不胜感激。
在 JSFiddle 上还有一个此代码的工作示例:http: //jsfiddle.net/X8geT/1/