2015-10-02 3 views
4

Нокаут JS имеет концепцию виртуальных элементов. Это «безгласные» элементы, с которыми вы можете привязываться, у которых нет элемента HTML в качестве контейнера. Это позволяет связывать массивы в контейнере, который не создает внешнего HTML.Есть ли у Aurelia виртуальные элементы?

Например, в Knockout JS вы можете сделать что-то вроде:

<!-- ko foreach: items --> 
    <li data-bind="text: $data"></li> 
<!-- /ko --> 

Серия li теги будут выделяться без родительского элемента.

Предлагает ли Aurelia нечто подобное? Я вижу, вы можете создавать пользовательские элементы в Aurelia, которые могут быть связаны, но эти настраиваемые элементы испускаются в DOM как элементы HTML.

Например, в Аурелия вы можете сделать что-то вроде:

<foo repeat.for="item of items" foo.bind="item"></foo> 

Однако это будет излучать foo теги элементов. Как вы делаете что-то подобное в Aurelia без тегов нежелательных родительских элементов?

+2

[Данные заметки] (http://blog.durandal.io/2015/06/09/aurelia-early-june-release/) упоминаются "Containerless пользовательских элементов" под Новые функции с июня, так что похоже, что он где-то там –

ответ

13

James Thorpe для указания меня в правильном направлении. Aurelia добавил атрибут @containerless, который вы украшаете своим классом элемента. Когда вы делаете это, вы получаете без контейнера.

Пример:

import {customElement, containerless} from 'aurelia-framework'; 

@customElement('foo') 
@containerless 
export class Foo { 
} 
Смежные вопросы