У меня есть представление марионеток SingleCategoryView, которое принимает коллекцию и отображает параметры просмотра.
optionsView представляет собой список optionView itemView.
В моем представлении SingleCategory я должен сделать тест на Render
"onRender": function()
{
if(optionsView.hasOnlyExtraOption(optionsView.collection.models)) {
var noResultsAvailableMsg =
this.model.getLocalisationModel().getNoResultsAvailableMsg();
var myModel = new noResultsAvailableModel({noResultsAvailableMsg:
"noResultsAvailableMsg"});
this.conflictMessageRegion.show(new noResultsAvailableView({ 'model' :
myModel}))}
}
вот код hasOnlyExtraOptions, расположенный в файле optionsView
"hasOnlyExtraOption": function(data) {
return data.every(function(currentValue) {
return
currentValue.get(
MODEL_VIEW_CONSTANTS.ctaDisplayConflicted.selectors.cfgExtraOptions
ListItem) ||
currentValue.get(
MODEL_VIEW_CONSTANTS.ctaDisplayConflicted.properties.isExtraOption);
});
}
Моя проблема в том, что когда я делаю тест, даже если singleCategory визуализируется, класс css (isExtraOption cfgExtraOptionslistItem) еще не установлен, поэтому результат теста не определен.
На самом деле эти классы css устанавливаются с помощью optionViewModel здесь:
"onConfigurationStepsComplete": function() {
// some code
this.setIsExtraOption();
//some code }
, чтобы быть более явным: optionView имеет в качестве родительского optionsView, а в качестве родительского - singleCategoryView. Моя цель - вызвать изменение атрибута isExtraoption с помощью optionViewModel из singleCategoryView.
Спасибо заранее.