Мне нужен способ, чтобы все шаблоны в Knockout связывали одни и те же функции событий, например:
ko.bindingHandlers.foreach.afterAdd = function(){ ... }
Мне нужен способ, чтобы все шаблоны в Knockout связывали одни и те же функции событий, например:
ko.bindingHandlers.foreach.afterAdd = function(){ ... }
Вы можете написать оболочку для привязки шаблона, которая добавляет эти параметры в сценарий foreach
. Возможно что-то вроде:
ko.bindingHandlers.myTemplate = {
init: function (element, valueAccessor, allBindings, value, context) {
var options = ko.unwrap(valueAccessor());
if (options && typeof options === "object" && options.foreach) {
options.afterAdd = ko.bindingHandlers.myTemplate.afterAdd;
options.beforeRemove = ko.bindingHandlers.myTemplate.beforeRemove;
}
ko.applyBindingsToNode(element, {
template: options
}, context);
return {
controlsDescendantBindings: true
};
},
beforeRemove: function (element, data) {
console.log("remove", element, data);
ko.removeNode(element);
},
afterAdd: function (element, data) {
console.log("add", element, data);
}
};
Образец: http://jsfiddle.net/rniemeyer/Xnbe2/
template
? как насчет переопределения template
?
- person I.G. Pascual; 13.09.2013
myTemplate
- person RP Niemeyer; 13.09.2013