Loading...
Valleri avatar Valleri 304 Точки

[Useful Info] JavaScript - Помагало по JS OOP - "Solver DGE"

Здравейте, преатели!

Направих един кратък скрипт, който може би ще ви улесни на изпита.

С него се работи по следния начин. 
Въвежда се име на класа и полетата КАТО първо се въвежда името на полето и след това с тире се вкарва типа на променливата.

Пример: 
x - number, y - number, isMale - bool, name - string

Както виждате типовете засега са 3 и са разделени с тире от името на променливата.
Отделните полета са отделени с запетая.

Какво се генерира?

1.Конструктор
2. Basic проверки на типовете
3. toString
4. Има опция за добавяне на проверка за абстрактен клас от отметката

Линк: Solver DGE

П
римерен output: http://pastebin.com/AWKfVfXj

29
JavaScript Advanced 15/11/2014 10:46:28
Ventsislav avatar Ventsislav 343 Точки

Благодаря колега, аз едитнах малко кода за да ми е по-удобен. Направих следните промени :
на 18ти ред сплитвам по двоеточие "var splittedFieldType = fieldTypePair[i].split(":");" ,
по-надолу в проверката за bool слъм сложил boolean "} else if (fieldType == 'boolean') {"
също така вместо да ми печата валидацията съм го направил да печата метод за валидация, като например:
Object.prototype.validateIsNullOrEmpty(fieldName);

Object.prototype.validateIsNumber(fieldName);
Object.prototype.validateIsBoolean(fieldName);


От тук може да свалите кода.
Примерен output: цък

8
13/11/2014 22:34:15
RoYaL avatar RoYaL Trainer 6849 Точки

Добра идея си е това :)

Реших да направя подобно нещо, само че код генератора е на РНР.

https://github.com/RoYaLBG/JavascriptClassGenerator

И с малко разлики в HTML-а. Добавяш пропъртита през "add" линкчето. (Май трябва да направя и Remove:)). Избираш типа му от дропдаун. Може да посочиш и кой клас наследяваш. В началото генерира закачени към прототипа на глобалния обект валидации.

Може би ще е добре, ако го направя да генерира повече от един клас наведнъж, за да има смисъл от това да се избира кой е Parent class-a. Също и някакви рейндж-ове да могат да се посочват освен типа.

Примерния аутпут също е в репото:

https://github.com/RoYaLBG/JavascriptClassGenerator/blob/master/test_output.js

EDIT:

- Remove: добавено

- Range (from -> to) за Numeric полетата: добавено

9
14/11/2014 16:17:13
Anita avatar Anita 360 Точки

Тук може да тествате онлайн варианта на Valleri.

Demo: SolverDGE

 

А от тук може да тествате онлайн варианта на RoYaL.

Demo: JavaScriptClassGenerator

5
14/11/2014 23:55:03
kiko144 avatar kiko144 795 Точки

Супер, много полезно и спестява почти всичкото писане :D 

Само да вметна, че валидацията за number (field ^ 0 == field) при по-големи от 32 битови числа не работи. 

Предполагам няма да се наложат такива случаи ама е хубаво да се знае.

1
micev avatar micev 59 Точки

Много добър скрипт, благодаря!

0
Yulia avatar Yulia 1346 Точки

// Малко офф-топик, но искам да кажа, че много ме радва факта, че изобщо сте решили да отделите от времето си, за да напишете нещо подобно. Смятам, че ето такива задачи (мини проекти) трябва да ни се дават за домашно. Да има човек желание да ги напише (даже след крайния срок), защото са интересни и полезни заради резултата (освен заради самото им писане). Плюс това - дават свобода за това как точно да се осъществят. ^^

5
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.