骨干查看这个。$是未定义的

时间:2013-10-09 10:04:39

标签: javascript jquery backbone.js views

我正在关注backbone.js tutorial并且部分代码无效,可能是因为Backbone在此期间发生了变化,或者因为我做错了什么。这是我视图的渲染功能。

// grab and populate our main template
render: function () {
    // once again this is using ICanHaz.js, but you can use whatever
    this.el = ich.app(this.model.toJSON());

    // store a reference to our movie list
    this.movieList = this.$('#movieList');

    return this;
},

该元素稍后会在代码中附加到文档中。随后,当代码尝试将元素添加到this.movieList时,Javascript表示它未定义。

我尝试将this.el = ...更改为

this.setElement(ich.app(this.model.toJSON()));

这有帮助,因为this.$el现已定义,但如果我尝试this.$el.find(...)它就永远找不到任何内容,即使通过在Chrome中检查它确实包含HTML元素。

1 个答案:

答案 0 :(得分:1)

我从未使用ICanHaz,但它的工作方式与其他模板语言一样,可能会返回HTML代码。在那种情况下,我会做类似的事情:

render: function(){
    this.$el.html(ich.app(this.model.toJSON()));
}
addMovie: function (movie) {
    var view = new MovieView({model: movie});
    this.$el.find("#movieList").append(view.render().el);
},

希望这有帮助

PS:这是我第一次在骨干网代码o_O中看到this.$('something')。他是否在视图中存储了JQuery的引用?

相关问题