gpt4 book ai didi

javascript - 为什么 Backbone.js 在渲染 View 之前寻找模板?

转载 作者:行者123 更新时间:2023-12-03 12:33:26 25 4
gpt4 key购买 nike

我是 Backbone.js 的新手,我正在编写一个小应用程序。我决定将与每个资源(书籍、作者)相关的所有内容构建在单独的文件(books.js、authors.js)中。每个文件都有四个 BBjs 类:与给定资源相对应的模型、集合、模型 View 和 Collection View 。当只包含其中一个文件时,这工作正常。

现在我正在开发一个应该在特定作者页面中显示图书收藏的屏幕。我不打算呈现任何作者观点,而只是使用作者模型。但是,Backbone 因 Uncaught TypeError: Cannot read property 'replace' of undefined (underscore.js) 失败,因为它正在查找此页面上不存在的模板。

我的作者 View 类如下所示:

app.AuthorView = Backbone.View.extend({
...
template: _.template( $('#book-table-row-template').html() ),
...
render: function(e) { ... }
});

该页面没有任何 #book-table-row-template 元素(我猜这就是触发错误的原因),但我什至没有实例化此 View 。我究竟做错了什么?还有其他更有效的方式来组织我的 Backbone 类(class)吗?

最佳答案

您正在立即调用_.template 函数。它不等待实例化。如果没有#book-table-row-template,jQuery 也不会找到它。

如果您希望它等到实例化,请在 initialize 方法中设置 this.template,如下所示:

initialize: function() {
this.template = _.template( $('#book-table-row-template').html() );
}

关于javascript - 为什么 Backbone.js 在渲染 View 之前寻找模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23832127/

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