Я пытаюсь следовать this tutorial, чтобы создать вложенное древовидное представление. Учебник находится в машинописном тексте, в то время как я пытаюсь сделать аналогичную вещь в javascript с помощью Angular2.Angular2 Рекурсивные шаблоны в javascript
В коде машинопись, древовидный вид компонент выглядит так:
import {Component, Input} from 'angular2/core';
import {Directory} from './directory';
@Component({
selector: 'tree-view',
templateUrl: './components/tree-view/tree-view.html',
directives: [TreeView]
})
export class TreeView {
@Input() directories: Array<Directory>;
}
В JavaScript, который должен преобразовать в:
TreeView = ng.core
.Component({
selector: 'tree-view',
templateUrl: './components/tree-view/tree-view.html',
directives: [TreeView],
inputs: ['directory'],
})
.Class({
constructor: function() {
},
});
Однако, JavaScript выдает следующее сообщение об ошибке:
EXCEPTION: Unexpected directive value 'undefined' on the View of component 'function() {'
Я считаю, что это потому, что я вызываю директивы: [TreeView] перед TreeView имеет b een полностью определен. Если я удалю эту директивную строку, ошибка исчезнет. Тем не менее, я не знаю, почему он работал бы в машинописном, а не в javascript, если машинопись просто компилируется в javascript. This is the compiled javascript from the typescript code. Я не уверен, что мне не хватает. Любая помощь будет оценена по достоинству.
Попробуйте с 'директивами: [ng.core.forwardRef (функция() {возвращение TreeView; })] ' –
Эрик, вы ангел среди программистов. Это работало как шарм. Если вы ответите, я приму это. Знаем ли мы, как/почему это решение работает? –