Я использую библиотеку кендо-нокаутом RPNiemeyer. У меня есть кнопка, которая onclick создает объект javascript, связывает div с этим объектом и открывает всплывающее окно. Когда я закрываю окно с помощью кнопки x, которая находится в верхнем правом углу (я не импортировал изображения, и он не визуализирован правильно в скрипке.), Привязки сломаны, и кнопка не открывает окно снова. Вот мой HTML:Kendo-Knockout: закрытие оконных перерывов
<button onclick="openPopUp()">OpenPopUp</button>
<div id="productionStates" class="hidden">
<div data-bind="kendoWindow: { isOpen: isOpen, title:'States', center:true, width: 600, height: 150, modal: true, resizable: false, actions: ['Maximize', 'Close'] }" >
<fieldset>
<legend>Change state:</legend>
<table>
<tr data-bind="foreach: productionStates">
<td><button class="k-button" data-bind="value: ProductionState, text: ProductionState" /></td>
</tr>
</table>
</fieldset>
</div>
</div>
JavaScript:
var ProductionStatesList = function() {
var
self = this;
ProductionStatesList.prototype.productionStates =
ko.observableArray([ { ProductionState: ko.observable("Pending") } ]);
ProductionStatesList.prototype.openPopUp = function() {
self.isOpen(true);
};
ProductionStatesList.prototype.isOpen = ko.observable(false);
ProductionStatesList.prototype.openPopUp = function() {
self.isOpen(true);
};
ProductionStatesList.prototype.close = function() {
self.isOpen(false);
}
};
var elementIsBound = function (elementId) {
return !!ko.dataFor(document.getElementById(elementId));
};
var openPopUp = function(){
var productionStatesList = new ProductionStatesList();
if (!elementIsBound("productionStates")){
ko.applyBindings(productionStatesList, document.getElementById("productionStates"));
}
productionStatesList.openPopUp();
}
Вот код в jsfiddle: http://jsfiddle.net/5Zkyg/40/
Шаги для воспроизведения:
1.Click кнопку. Открывается всплывающее окно.
2.Закройте окно с верхнего правого изображения (кнопка x не отображается, поскольку изображения не импортируются).
Пожалуйста, объясните причину, по которой это не работает, и любое решение будет принята с благодарностью. Благодаря!
К сожалению, первое решение хочет работать для моего дела. Можно ли показать пример вашего второго предложения в скрипке. Благодарю. – Mdb
Я реорганизовал свой код, чтобы создать экземпляр вне функции. Проблема в том, что экземпляр зависит от другого объекта, и я использовал этот объект в конструкторе экземпляра. Итак, теперь я инициализирую ProductionStatesList с помощью пустого конструктора и вызывается явно инициализировать метод с зависимым объектом в качестве параметра, каждый раз, когда я вызываю функцию openPopUp. Возможно, это не лучшее решение, но это лучшее, что работает для меня в этом случае, и я оставлю его таким образом. Еще раз спасибо! Ваши отзывы бесценны. – Mdb
OK- если что-то еще работает, дайте мне знать или получите его в скрипке! –