Я пытаюсь создать форму динамически, используя ответ сервера. Форма может иметь поля, которые вложены, сгруппированы и так далее. Я попытался создать директиву для моего типа поля как «form-field» и использовал директиву ng-include для повторения для всех вложенных полей.Угловые вложенные поля формы с использованием директивы
Когда я делаю это с помощью ul-li, вывод выглядит корректно, но когда я начинаю использовать поля и текстовые поля, вывод не выводит вообще для текстовых полей.
// Code goes here
angular.module('NestedForm', []).
controller('formController', function($scope) {
}).directive('formField',function($compile) {
return {
replace:true,
require:'ngModel',
scope:{
data :'=data',
ngModel : '='
},
restrict:'E',
link : function($scope, $element, $attrs)
{
var type = $scope.data.type;
var html = "";
switch(type)
{
case 'textbox' :
html = '<input id=\''+$scope.data.name+'\' type="text" ng-model="ngModel" class="form-control">';break;
case 'fieldset' :
html = '<fieldset><legend>'+$scope.data.name+'</legend></fieldset>';break;
default:
break;
}
var $e =$compile(html)($scope);
$element.replaceWith($e);
}
}
});
http://plnkr.co/edit/9b7wnPaaeppdJyq26qlN
Цените вашу помощь.
К сожалению о длинном после выпуска. По какой-то причине, когда я отправил, мне пришлось разместить код, и я поместил все это. Спасибо за решение. Это частично решает мою проблему. Я пытаюсь получить поля формы внутри
. Должен ли я использовать компиляцию вместо ссылки. – Kathir1. поскольку форма не может иметь форму, нет вложенной формы. Вы можете сказать вложенные поля. 2. fieldset - это контейнер, а поле ввода - это элементы, оно должно иметь разные директивы. 3. В поле fieldset он генерирует html, включая директивы text и fieldset, затем скомпилируйте его. – allenhwkim