Я пытаюсь создать форму, макет которой полностью управляется данными.
Пример источника данных:
{
title : "Form Test",
fields : [{
name : "FieldA",
type : "string",
value : "initial value"
}, {
name : "FieldB",
type : "selection",
options : ["1", "2", "3"],
value : "2"
}, {
name : "FieldC",
type : "struct",
value :
[{
name : "FieldC1",
type : "string",
value : "initial value"
}, {
name : "FieldC2",
type : "string",
value : "initial value"
}
]
}
]
}
Я думаю, что я могу использовать ng-repeat и ng-switch для выбора элемента формы в зависимости от типа, но я зацикливаюсь, когда дело доходит до этого рекурсивно, когда я доберусь до 'FieldC'.
<span ng-switch on="field.type">
<div ng-switch-when="string">STRING: {{field.value}}</div>
<div ng-switch-when="selection">SELECTION: {{field.value}}</div>
<div ng-switch-when="struct">STRUCT: ????</div>
<div ng-switch-default>DEFAULT:{{field.value}}</div>
</span>
По сути, я хочу, чтобы при столкновении с "struct" он рекурсивно применял ng-switch к полям struct? Есть ли способ "ссылаться" на шаблон, чтобы его можно было использовать в нескольких местах на одной странице? По-видимому, поддержка "частичных" шаблонов должна быть скоординирована на стороне сервера через маршруты, которые здесь кажутся излишними. Это то, что мне нужно, чтобы начать копаться в создании моих собственных директив?
EDIT Я просто наткнулся на этот, который выглядит так, будто у него есть достойная возможность делать то, что я хочу (I пока еще не проверили его правильно), то есть в правильном направлении?