首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚合物:从组件外部观察改变的性质。

聚合物:从组件外部观察改变的性质。
EN

Stack Overflow用户
提问于 2016-10-27 17:36:33
回答 1查看 561关注 0票数 1

我有聚合物网络组件。

我现在的问题是,在组件之外,我对DataBinding场景使用了敲除。现在我想创建我自己的Knockout绑定类型,wich能够使用Poylmer对象的双维绑定。为此,我需要从组件外部订阅属性观察者。这个是可能的吗?什么时候怎么做?

EN

回答 1

Stack Overflow用户

发布于 2016-10-28 05:18:05

我现在已经解决了以下问题:

代码语言:javascript
复制
        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;
                });
            }
        };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40290951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档