Так, у меня есть пользовательский элемент follow:

import {Router} from 'aurelia-router';
import {customElement, bindable, inject} from 'aurelia-framework';

@customElement('wave-canvas')
@inject(Element, Router)
@bindable({name:'hasGenerate', defaultValue:true})
export class WaveCanvas {
    constructor(element, router) {
        this.router = router;
        this.element = element;

    }

    goHome() {
        this.router.navigate('welcome');
    }

    attached() {
        let initialEvent = new CustomEvent('init', {
            bubbles: true
        });
        this.element.dispatchEvent(initialEvent);

    }
}


Используется как таковой:


Для данного экземпляра wave-canvas я хотел бы скрыть кнопку Generate, но то, как я ее сейчас настроил, не работает. Если я изменяю значение по умолчанию в модели представления, она скрывается, как и ожидалось, но не скрывается, когда я указываю атрибут в html как false. Что я делаю не так?

Jason Miesionczek

Ответов: 1

Ответы (1)

Aurelia будет дефисировать имена связываемых свойств, имена пользовательских элементов и имена пользовательских атрибутов в смешанном регистре. Это необходимо, поскольку DOM переводит все имена элементов и атрибутов в нижний регистр.

Попробуйте has-generate:

Возможно, вы также захотите использовать has-generate.bind="false". В этом случае свойству hasGenerate вашего элемента будет присвоено значение false (булево) (в отличие от строки 'false').

2022 WebDevInsider