Веб-компонент Angular не работает должным образом

Я создал простой проект Angular 6, потому что хочу создать веб-компонент. (URL-адрес GitHub). Вы можете клонировать репо с помощью git clone https://github.com/CSantosM/angular-elements-demo.git.

Я следил за этим руководством и я успешно создал веб-компонент. Однако, когда я тестирую этот веб-компонент в другом приложении с JavaScript, он не работает полностью.

Проблема заключается в *ngIf="display" button.component.ts html код github:

<div  *ngIf="display">
 <h3>Hello {{_userName}}</h3>
 <div class="button-row">
   <button mat-icon-button color="primary" (click)="toggleBlue()">
   <mat-icon aria-label="Example icon-button with a heart icon" 
      matTooltip="Like">favorite</mat-icon>
   </button>
 </div>
 <mat-icon *ngIf="blue">alarm</mat-icon>
</div>

Вставка веб-компонента в мое приложение JavaScript, расположенное здесь и < strong>динамическое изменение веб-компонента ввода, кнопка не работает должным образом.

Мой index.html (код github ):

<div id="main" style="text-align: center;">
    <h1>Insert your name</h1>
    <form onsubmit="sendName(); return false" style="padding: 80px; margin: auto">
        <p>
            <label>User:</label>
            <input type="text" id="user" value="User1" required>
        </p>
        <p>
            <input type="submit" value="JOIN">
        </p>
    </form>
</div>

<custom-button name=""></custom-button>

<!-- WebComponent JS -->
<script type='application/javascript' src='custom-button.js'></script>
<!-- WebComponent JS -->

<script>

    function sendName() {

        var user = document.getElementById('user').value;
        var ov = document.querySelector('custom-button');
        ov.userName = user;
    }

</script>

Когда я нажимаю кнопку этого приложения, вызывается функция sendName() и изменяется userName input, угловая переменная с именем display изменяется на true, и можно увидеть веб-компонент. (код github< /а>)

Если я не включу переменную display, веб-компонент будет работать как надо.

Здесь вы можете увидеть поведение:

введите здесь описание изображения

Является ли известная ошибка Angular? Почему с простым *ngIf веб-компонент не работает нормально? Как это решить?

Заранее спасибо.


person CSantos    schedule 29.06.2018    source источник
comment
Он должен работать с *ngIf. Я мог использовать *ngIf и вызывать службу, а также отображать контент только в случае успешной работы службы. Кроме того, вы сказали, что когда вы нажимаете кнопку, отображается компонент, так как это правда. Разве это не использование по назначению?   -  person Taranjit Kang    schedule 29.06.2018
comment
Компонент отображается, но функциональность не работает должным образом. Вы можете протестировать компонент, клонирующий репо, и запустить http-сервер внутри папки elements.   -  person CSantos    schedule 30.06.2018


Ответы (1)


Я опубликовал проблему в репозитории angular github, и обходной путь, который они мне предоставили, находится здесь

person CSantos    schedule 03.07.2018