splincodewd
@splincodewd
Developer

Как эффективно и красиво генерировать инпуты?

От сервера я получаю 2 объекта, условные ("ProcessStepInParams", "ProcessStepOutParams")
04daa8a79bfd4537939e37a28a44a893.png

на их основании я пытаюсь выводить контроллы в страницу
но код, я так полагаю, грязный

["ProcessStepInParams", "ProcessStepOutParams"].forEach(function(type, i){

				ProcessStepData = data.ProcessStep[type];
				ProcessStepData.forEach(function(item, i){

					// если есть элементы на вывод

					var PSD = item["EntityType"];
					if (PSD["EntityPropertyTypes"].length < 1) return;

					var caption = PSD["Caption"];
					var InnerHTML = "<div class='maintitle'>" + caption + "</div>";
		
					if (type == "ProcessStepInParams") 
					InnerHTML += '<div class="compliteinfo">';

					else 
					InnerHTML += '<div class="taskinfo">';
	
					PSD["EntityPropertyTypes"].forEach(function(item, i){
						
						var width = (item['PropertyType']['Width'] >= 250) ? item['PropertyType']['Width'] : "250"
						
						var size = "width: " + width + "px; float: left;"

							InnerHTML += '<div class="input-field col s12" style="' + size +  '">' + 
							'<input id="last_name" type="text" class="validate saveData" ' + 'ng-blur="saveData()">' +
							'<label for="last_name" class="">' +
							'<b>' + item.PropertyType["Caption"] + '</b>: ' + 
							'</label>' +
							'</div>'
					});
					
					InnerHTML += '<div class="clearfix"></div></div>'
					InnerHTML += '<style scoped>@media only screen and (max-width: 992px) {'
								 + 'html div.input-field {width: 100% !important;}}</style>'

					$(".maintext").append($compile( InnerHTML + '<br>' )($scope));

				});


			});

что подскажете?
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
streetflush
@streetflush
Причем тут ANGULAR.JS ?

Складывается впечатление что 50% вопросов по Angular это Jquery'сты которые увидели что модно использовать Anglar и лепят его везде.

Если это делать на Angular то делается директива, которая вызывается в ng-repeat
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы