У меня есть переменная, сохраненная в 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.
Любое мнениебудет оценена.