gpt4 book ai didi

javascript - 如何从控制台访问 Backbone 对象?

转载 作者:行者123 更新时间:2023-11-29 22:21:27 25 4
gpt4 key购买 nike

click() 的返回函数中创建了一个主干集合和一些 View ,如下面的代码片段所示。

问题:如何使用 Javascript 控制台访问像 Collection productList 这样的 backbone.js 对象? this.productList 不返回任何东西,所以我相信 productList 不是 window 对象的直接子对象。那么我应该如何创建 productList 集合?

JS代码

$('#submit_btn').click(function() {
console.log('do something');
}, function() {

this.productList = new ProductCollection();
var self = this;
self.productListView = new ProductListView({ collection: self.productList });
this.productList.fetch({
data: {gender: 'men'},
processData: true
});

});
});

最佳答案

现在在这种情况下,您不能将所有内容都放在匿名函数中,因此您无法在函数执行后访问它。无论如何,这不是正确的做事方式,或者不是主干方式。

这就是我通常做事的方式,创建一个中央命名空间,如 app,然后为该命名空间创建所有模型、集合和 View ,如

window.App = {
//model
Curve : {},
//collection
CurveManager : {},
//view
Views : {},
//controller
Controller : {}
}

此外,我认为您应该从主干 View 本身处理点击事件,这样您就可以相对容易地可视化事物。例如在 http://backbonejs.org/docs/todos.html查看 AppView 事件。这应该会让事情变得更加清晰。

这是部分代码

var AppView = Backbone.View.extend({
el: $("#todoapp"),
statsTemplate: _.template($('#stats-template').html()),
events: {
"keypress #new-todo": "createOnEnter",
"click #clear-completed": "clearCompleted",
"click #toggle-all": "toggleAllComplete"
},

.
. // more code in between
.

createOnEnter: function(e) {
if (e.keyCode != 13) return;
if (!this.input.val()) return;

Todos.create({title: this.input.val()});
this.input.val('');
},

我通常会在 github 上查看其他人的代码,并尝试了解他们如何做事以及应该如何做事,我建议您也这样做。它有很大帮助 :) todoapp 带注释的源代码非常干净并且非常容易理解。

关于javascript - 如何从控制台访问 Backbone 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12218600/

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