Tôi đã tạo thành phần web tùy chỉnh bằng Polymer, kết thúc văn bản và thay đổi nó một chút (chuyển thành chữ hoa trong bằng chứng khái niệm này).Phần tử gói văn bản có gắn kết trong Polymer 1.0
Phần tử tự hoạt động OK với nội dung tĩnh. Tuy nhiên, khi nội dung được liên kết động, thành phần không hiển thị nội dung.
Ví dụ:
<my-wrapper>Hello, World!</my-wrapper> <!-- Works -->
<my-wrapper>[[someText]]</my-wrapper> <!-- Doesn't work -->
Hiện nay tôi đang sử dụng observeNodes, trong đó quản lý để kích hoạt các văn bản ban đầu biến đổi, nhưng thất bại trong việc gây ra những thay đổi phụ tuần tự.
nguyên mẫu hiện tại của tôi được định nghĩa là:
<dom-module id="my-wrapper">
<template>
<span id="placeholder"></span>
</template>
<script>
Polymer({
is: 'my-wrapper',
ready: function() {
var self = this;
Polymer.dom(Polymer.dom(this)).observeNodes(function(info) {
self.$.placeholder.textContent = info.target.textContent.toUpperCase();
});
/*var mutationObserver = new MutationObserver(function(e) {
console.log(e);
});
mutationObserver.observe(this.root, {characterData: true, childList: true});*/
},
});
</script>
</dom-module>
Và một JSBin làm việc cho các vấn đề nêu trên có thể được tìm thấy ở đây: http://jsbin.com/jumewuzuho/1/edit?html,console,output.
Bất kỳ đề xuất nào về cách nắm bắt sự thay đổi của nội dung (ánh sáng DOM), để tôi có thể tái biến đổi văn bản?
Như bạn có thể thấy trong khối nhận xét của mã, tôi đã thử sử dụng MutationObserver, nhưng không tạo được một nguyên mẫu hoạt động. Tôi đoán là tôi đã không sử dụng nút chính xác (this.root
trong trường hợp của tôi).
bạn đã tìm thấy giải pháp cho điều này chưa? Tôi cũng đang viết một trình bao bọc văn bản vào lúc này, nhưng không có giải pháp nào đã làm việc cho tôi cho đến nay. Điều duy nhất mà sẽ làm công việc là đi qua các văn bản như là một thuộc tính (mà không phải là sạch trong quan điểm của tôi) – Yorrd
@ Yorrd: Không, tôi đã không tìm thấy giải pháp nào được nêu ra. Tôi cũng đã thử đặt nội dung của phần tử bên trong thẻ 'template' cùng với hành vi' Templatizer', nhưng không thể tạo ra bất kỳ kết quả hữu ích nào. – alesc