Добавить динамический HTML, не используя compose внутри View

Мне нужно добавить элемент HTML HTML внутри пользовательского компонента (Footable). Поскольку компонент создается во время выполнения, я не могу использовать compose нигде в html, поэтому я должен добавить свои элементы, используя jQuery.

Любые идеи, как я могу добавить ниже и привязать к методу ViewModel? Подходящее событие:

'postinit.ft.table':function(e,ft){
   $('.footable-filtering .form-inline').append('<div class="form-group"><a
   href="#" click.delegate="refreshNow()" class="btn btn-primary"><i class="fa
fa-refresh"></i></a></div>');
}

1 ответ

Решение

Я, наверное, пришел к этому по-другому. Я бы использовал JQuery's .on обработчик, чтобы прикрепить слушателя к .footable-filtering элемент, видя, как кажется, присутствует с самого начала;

'postinit.ft.table':function(e,ft){
    $('.footable-filtering .form-inline').append('<div class="form-group"><a
        href="#" click.delegate="refreshNow()" class="btn btn-primary refreshButton"><i 
        class="fa fa-refresh"></i></a></div>');
}

$('.footable-filtering').on('click', '.refreshButton', (e) => {
    e.preventDefault();
    this.refreshNow();
}

Это не проверено - но должно работать.

Edt - Стоит также сказать, что комбинирование Aurelia и jQuery таким образом не является идеальным, но, поскольку вы все равно используете jQuery для создания элемента, который он использует, сносно.

Другие вопросы по тегам