【发布时间】:2018-09-26 09:09:50
【问题描述】:
我在 js 文件中保存了一个变量:Subcategories.js。像这样的东西(但实际上要大得多):
define({
subcategories: {
"Category1":
[
"Subcategory1-1", "Subcategory1-2", "Subcategory1-3"
],
"Electrical":
[
"Subcategory2-1", "Subcategory2-2", "Subcategory2-3", "Subcategory2-4"
],
},
getSubcategories: function () {
return this.subcategories;
}
});
我已经设法以这种方式成功地将变量发送到 SomethingController.js(仅复制了以下必要代码的一部分):
define(
[
"underscore",
"base/Controller",
"views/SomethingView",
"collections/SomethingCollection",
"helpers/Subcategories",
],
function(_, Controller, SomethingView, SomethingCollection, Subcategories) {
var subcategory = null,
var SomethingController = Controller.extend({
show_results: function(collection, resp) {
var data = {
subcategories: Subcategories.getSubcategories(),
};
...
但是当我尝试在 SomethingView.js 中导入变量时,它只有在我再次使用整个 json 对象时才有效:
define(
[
"jquery",
"backbone",
"has/form",
"has!input-attr-placeholder?:jqueryui/placeholder",
"scripts/libs/jquery.tmpl.js",
"helpers/Subcategories",
],
function( $, Backbone, viewTemplate, has, Subcategories) {
var SomethingItemsView = Backbone.View.extend({
el: $("#main-section"),
template: viewTemplate,
events: {
"click #some_button" : "change_some_page",
},
something_items: function( event ) {
event.preventDefault();
var somethingCategory = $("#some_selector");
var subcategories = {// entire json object
}
var somethingSubcategory = subcategories[somethingCategory];
...
我尝试过var subcategories = Subcategories.getSubcategories()、Subcategories.subcategories 和各种各样的东西。为这么小的事情浪费了相当多的时间。我很困惑为什么它不起作用,我不想让整个对象在那里硬编码。
我正在对现有网站的前端进行一些更改,因此请注意,我无法更改任何这些文件的框架,除了 Subcategories.js。
任何意见将不胜感激。
【问题讨论】:
标签: javascript jquery json backbone-views