Cyclejs теряет знание DOM, который он представил - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть маленькое приложение cyclejs, и все работает, кроме этого нажатия одной кнопки ... другие нажатия кнопки работают

Cyclejs отображает элемент, но, кажется, теряет его ссылку, и я не могу получить следующее:

// do not get this alert
sources.DOM.elements()
        .filter(c => (document.getElementById('cameraButtonId') != null))
        .take(1)
        .map(c => {
            alert('exists')
        }).addListener({})

// cannot get this either after clicking
sources.DOM.select('#cameraButtonId').events('click').map(c2 => {
        alert('click')
    }).addListener({})

, хотя в браузере отображается следующее:

<button class="cameraPermissionButton" id="cameraButtonId">Enable Camera Access</button>

У меня нет ошибок console.log или каких-либо исключений

1 Ответ

0 голосов
/ 11 января 2019

Он не теряет отслеживания статуса элементов.

Вы должны использовать селектор, предоставленный DOMSource (как вы уже делаете в коде ниже вашего комментария // cannot get this either after clicking) вместо использования селектора документа в filter, то есть .filter(c => (document.getElementById('cameraButtonId') != null)).

Например,

-sources.DOM.elements()
-        .filter(c => (document.getElementById('cameraButtonId') != null))
+sources.DOM.select('#cameraButtonId').element()
        .take(1)
        .map(c => {
            alert('exists')
        }).addListener({})
...