Aurelia требует, чтобы импорт html не работал

#javascript #html #aurelia

#javascript #HTML #aurelia

Вопрос:

У меня нет ошибок в консоли. Но консоль не регистрирует a console.log , который я ввел в конструктор top-nav.js . Но что еще более важно. Простой jumbotron div не отображается, Aurelia сообщает в консоли, что он нашел правильный top-nav.html . Вот App.html

 <template>
    <require from="bootstrap/css/bootstrap.css"></require>
    <require from="htmlreq/top-nav"></require>
    <h1>${message}</h1>
</template>
  

App.js для согласованности

 export class App {
    message = "Hello Pathways";
}
  

top-nav.html

 <template>
    <div class="jumbotron">
        <div class="container"> 
            <p>Career amp;amp; Technical Education </p>
        </div>
    </div>
</template>
  

top-nav.js оператор консоли не запускается. И Jumbotron не отображается и не указан нигде в dom.

 export class TopNav {
    _topnav = true;
    constructor() {
        console.log('constructed');
    }
}
  

Ответ №1:

Вам «требуется» пользовательский элемент, но вы его не «используете».

Вы должны сделать это:

 <template>
    <require from="bootstrap/css/bootstrap.css"></require>
    <require from="htmlreq/top-nav"></require>
    <h1>${message}</h1>

    <top-nav></top-nav>
</template>
  

compose В этом случае нет необходимости использовать.

Комментарии:

1. Как всегда, Фабио с потрясающим ответом!

2. ха-ха, спасибо @AshleyGrant! Когда-нибудь я буду таким же крутым, как ты!

Ответ №2:

Хорошо, похоже, что это случай для <compose> . Он «компилирует» html, и вы все равно можете выполнить некоторые привязки представления к представлению модели, если захотите. Мне нужно это на App.html вместо требования. Требовать, я думаю, больше для создания пользовательских атрибутов / тегов, а затем включения их в app.html

 <template>
    <require from="bootstrap/css/bootstrap.css"></require>
    <compose view-model="htmlreq/top-nav" view.bind="htmlreq/top-nav.html"></compose>
    <h1>${message}</h1>
</template>
  

Комментарии:

1. Пожалуйста, не используйте compose для этого. Это не случай динамической композиции, которая в значительной степени является единственным случаем, когда следует использовать compose.