Это очень общие рамки шаблон инициализации при работе с рамками.
Ваш пример кода передает объект JavaScript {}
в качестве параметра в функцию ()
, которая называется init.
Принимая все определения картина выглядит следующим образом:
SomeFramework.frameworkFunction({});
В приведенном выше коде {}
является пустой объект, используемый для инициализации. Есть два способа, которыми вы можете работать с этим объектом на практике.
Что касается вашего первого фрагмента кода, вы можете добавить код в этот «литерал объекта».
backgroundFilters: { Категория: [ 'рубашка', 'Обувь'], универмаги: [ 'мужские'], кошка: [ 'My значение'] },
Обратите внимание на добавленную запятая, это важная точка отключения. Это может или не соответствовать вашим потребностям, в зависимости от нескольких факторов.
Что касается вашего второго фрагмента кода, вы можете применить к объектам JavaScript во время выполнения. Я имею в виду, что ваш var cat может быть добавлен в анонимный объект-литерал, который передается. Трудно сказать, но простая концепция. Вот так:
//Say this is initialized in some separate way. //There is a bug here I'll describe later.
var cat="MyNewCategory";
cat.value="ANewValue";
//Extract and name the initialization object. It is verbatim at this point.
var initObject = {
leaveInitialResults : true,
facets : '.leftNav',
results : '#results',
result_layout: 'list',
results_per_page : 12,
layout: 'top',
loadCSS: false,
filters: {
color: ['Blue']
},
backgroundFilters: {
category: ['Shirt', 'Shoes'],
department: ['Mens']
},
maxFacets: 5,
maxFacetOptions: 10,
sortText: 'Sort By ',
sortType: 'dropdown',
filterText: 'Refine Search Results',
previousText: 'Previous',
scrollType: 'scroll',
scrollTo: 'body',
backgroundSortField: 'price',
backgroundSortDir: 'desc',
compareText: 'Compare Items',
summaryText: 'Current Filters',
showSummary: true,
subSearchText: 'Subsearch:',
showSubSearch: true,
forwardSingle: false,
afterResultsChange: function() { $('.pagination').hide(); },
filterData: function(data) { console.debug(data); }
};
//Now we can add variables (and functions) dynamically at runtime.
initObject.cat = cat;
//And pass them into the framework initialization in a separated way.
SearchSpring.Catalog.init(initObject);
Теперь об ошибке. Я не знаю решения, потому что я не знаю, что он должен делать, но я могу указать, что потенциально неверно.
var cat = "MyNewCategory"; cat.value = "ANewValue;
Этот код:.. 1 создает строковый объект под названием кошки 2 изменяя значение новой строки я не думаю, что это то, что вы действительно хотите
К. добавить новый backgroundFilter, в отделенной пути выше, было бы:
initObject.backgroundFilters.cat = ['A', 'B'];
//Line above would give you this type of definition within the initObject (at runtime):
backgroundFilters: {
category: ['Shirt', 'Shoes'],
department: ['Mens'],
cat: ['A','B']
},
для этой работы будет зависеть от того, что база ожидает относительно backgroundFilters.
Надеюсь, что это поможет. Все самое лучшее! Nash
Это то, что вы ищете? 'catalog.backgroundFilters.category.push ('MyNewCategory');' –
Это все, что я должен сделать? Как добавить значение. –
Что значит добавить значение? к чему вы добавляете значение? –