我有聚合物网络组件。
我现在的问题是,在组件之外,我对DataBinding场景使用了敲除。现在我想创建我自己的Knockout绑定类型,wich能够使用Poylmer对象的双维绑定。为此,我需要从组件外部订阅属性观察者。这个是可能的吗?什么时候怎么做?
发布于 2016-10-28 05:18:05
我现在已经解决了以下问题:
ko.bindingHandlers['polymer'] = {
'init': function (element, valueAccessor, allBindings) {
var eventsToHandle = valueAccessor() || {};
ko.utils.objectForEach(eventsToHandle, function (eventName, value) {
if (typeof eventName == "string") {
var polymerEvent = eventName.replace(/([a-zA-Z])(?=[A-Z])/g, '$1-').toLowerCase() + '-changed';
var listener = function(e) {
value(e.detail.value);
};
element.addEventListener(polymerEvent, listener);
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
element.removeEventListener(polymerEvent, listener);
});
}
});
},
'update': function (element, valueAccessor, allBindings) {
var value = ko.utils.unwrapObservable(valueAccessor()) || {};
ko.utils.objectForEach(value, function (attrName, attrValue) {
attrValue = ko.utils.unwrapObservable(attrValue);
element[attrName] = attrValue;
});
}
};https://stackoverflow.com/questions/40290951
复制相似问题