Atmesh Sonawane Ответов: 2

Как динамически изменять тип ввода в angular js


Всем привет,

Я работаю над MVC с angularJS. В котором я генерирую динамические HTML-элементы управления из angularjs на основе полей базы данных.
------------------------------------------------
Lable || Type  ||IsRequired || MinLen || MaxLen
------------------------------------------------
Name  || text  ||Yes        || 3      ||10
Mobile|| number||Yes        || 10     ||12
DOB   ||date   ||Yes        || --     ||--
------------------------------------------------

И я создаю элементы управления с помощью функции javascript с помощью
document.CreateElement(input);


и проверка значений базы данных в случае чего
if(DatabaseType=="text"){
document.CreateElement(input);
input.type="text";
}else if(DatabaseType=="number"){
document.CreateElement(input);
input.type="number";
}else if(DatabaseType=="date"){
document.CreateElement(input);
input.type="date";
}

и добавить такие элементы в DIV с помощью

divId.appendChild(input);


подобный этому

Но когда мои значения меняются, то тип date дает мне проблему

он не позволяет вводить текст или число в это текстовое поле

Я также использовал функцию $compile, тогда она также дает мне проблему, пожалуйста, предложите мне решение


Короче говоря, я хочу динамически менять тип ввода, например дату на текст
но когда я делаю это, он не позволяет.

Что я уже пробовал:

if(DatabaseType=="text"){
document.CreateElement(input);
input.type="text";
}else if(DatabaseType=="number"){
document.CreateElement(input);
input.type="number";
}else if(DatabaseType=="date"){
document.CreateElement(input);
input.type="date";
}

divId.appendChild(input);

$compile(divId);

2 Ответов

Рейтинг:
2

Sania Jaan Khan

используйте некоторые кодировки из моего блога, которыми я поделюсь позже здесь


Atmesh Sonawane

Пожалуйста, дайте мне конкретную ссылку

King Fisher

у тебя есть решение?

Atmesh Sonawane

Нет

King Fisher

тогда почему вы приняли это как решение ?

Atmesh Sonawane

Хорошо, извините, что я не знал смысла принятия ответа

Рейтинг:
1

Shriya Kulkarni

Предполагая, что вы получаете данные для создания элементов управления, вы можете динамически генерировать их непосредственно через angularjs. Никакой javascript для createElement не требуется. Вы можете использовать мощь angularjs

<table>
    <tr ng-repeat="d in data">
        <td><input type="d.type" value="d.Lable" minlength="d.minLen" maxlength="d.maxlength"></td>
        
    </tr>
</table>