j-Editable
Ez az összetevő a editable osztályú összes elemet szerkesztheti. data-bind vagy dinamikus értékekkel működik.
konfiguráció:
autofocus{Boolean} az első elemre összpontosít (default:false)validate{Boolean} nem engedélyezheti a validációt (default:true)disabled{Boolean} lehet letiltani a szerkesztés (ez hozzáteszi aui-editable-disabledés aui-editable-enabledosztályok), alapértelmezett:falsechanged{String} opcionális, a módszerhez vagy úthoz való link --> csak változó értékekkel tartalmazza az objektumotenter{String} opcionális, egy link a módszerhezmethod(path, value, el)a módszer végrehajtása, ha a felhasználó nyomjaENTERescape{String} opcionális, egy link a módszerhezmethod(path, value, el)a módszer végrehajtása, ha a felhasználó nyomjaESCcan{String} opcionális, egy link a módszerhezmethod(opt, el)Visszatérni kellbooleanEz azt jelenti,can edit?error{String} opcionális, amethod(el, isInvalid, meta)módszerhez való linket akkor értékelik, ha az elem nem érvényes, és fordítva.- NEW
class {String}opcionális, az osztály neve aui-editable-CLASSűrlapban szerepel (előzetes:default)
A data-editable tulajdonság a viselkedés leírását írja le:
path{String} egy relatív út a tulajdonság (adata-bindautomatikusan örökölhető)required{Boolean} opcionális, lehetővé teszi a „követelt” (default:false)type{String} opcionális, lehetstring(default),date,number,boolean,emailvagyhtmlNEWtagscan{String} opcionális, egy út afunction(opt, el)vissza kellboolean, ez azt jelenti, hogycan edit?saveVálasztható, egy út afunction(opt, accepted(boolean)),acceptedA funkciót értékelni kellformat{String} opcionális, adateformátum, alapértelmezett:yyyy-MM-dddirsource{String} opcionális, az adatforráshoz vezető útdircustom{String/Boolean} opcionális, tartalmazhat egy utat afunction(val, next(new_val))vagy lehetBoolean. Ez az opció lehetővé teszi a hozzáadott értéket (érték nem meghatározott adatforrás)dirrender{String} opcionális, egy út afunction(item, text)(aj-DirectoryHTML-t vissza kell adni), ez a funkció befolyásolhatja az elemek listáját aj-Directorydirminwidth{Number} opcionális, minimum szélesség aj-Directory, alapértelmezett:200dirmaxwidth{Number} opcionális, a maximális szélesség aj-Directorydirplaceholder{String} opcionális, egy helytartó aj-Directorydirempty{String} opcionális, üres mezőt ad aj-Directoryszámáradirkey{String} opcionális, atextolvasásához szükséges kulcsszavak adirsource-ben (előzetes:name)dirvalue{String} opcionális, avalueolvasásához szükséges kulcsszavak adirsource-ben (előzetes:id)dirsearch{Boolean} opcionális, nem engedélyezhető a keresés aj-Directoryautosource{String} asearchfunkcióhoz vezető út aautocomplete,function(search, render(arr))autovalue{String} az értéket aautosourcemaxlength{Number} egy maxhosszminvalue{Number} egy min. értéke a szám típusa (default:undefined)maxvalue{Number} a maximális érték a szám típus (default:undefined)rebind{Boolean} ha atruecsak adata-bindelemet kötődik (elsődleges:0)validate{String} opcionális, az érték érvényesítésének feltétele, tartalmazhat egy linket afunction(value)vagy!!value.match(/[a-z]+/)multiline{Boolean} opcionális, lehetővé teszi multiline + appends osztályeditable-multiline(inline-block+width:100%) amikor szerkesztés (default:false)raw{Boolean} opcionális, amikortrueakkor a jelenlegi HTML tartalma lesz, mint egy helytartó, ha az értéknullable(default:true)accept{String} opcionális, az érték elfogadásának feltétele, tartalmazhat egy linket afunction(value)vagy!!value.match(/[a-z]+/)hasonló avalidateempty{String} opcionális, üres értéket engedélyez, és tartalmazhat üres címke vagy1vagytrueaz automatikusrebindkötődésinvalid{String} opcionális, amethod(el, isInvalid, meta)módszerhez való linket akkor értékelik, ha az elem nem érvényes, és fordítva.
módszerek:
- NEW:
component.changed()visszatér egy módosított adatot tartalmazó objektumhoz
Jó tudni:
- ha a felhasználó néhány
keynyomást, akkor a szerkeszthető elem tartalmazza akeypressedosztály, amíg nem hagyja el a vezérlő - Minden változó elem tartalmazza a
changedosztályot - Ha az összetevő változtat néhány értéket, a fő elem tartalmazza a
ui-editable-changedosztály - ha a
data-bindés aempty-es elemet tartalmazza, akkor a fókusz után törlődik. - Új támogatás
tagsMostantól csak a támogatásrebindésdata-bind(Az adatok összekapcsolásatemplateA{jQuery selector}Munkák a+v18) - NEW ha az elem ( vagy a szülő, vagy a szülők) tartalmazza a
data-disabled="1"attribútumot, a vezérlés kikapcsolódik - NEW rejtett és törölt elemek nem érvényesülnek
Használja a <ui-component name="editable">Amennyiben a készülék még nem tölthető le, jComponent letöltés az első felhasználásra a címről DEF.fallback (Azt a Componentator A szerző: Peter Širka. forrás: a Componentator Az összetevők raktár, MIT licenc.
<style>
.changed {}
.changed::after { float: right; content: '+'; margin-left: 5px; font-weight: normal; color: orange; }
</style>
<ui-component name="LAZY datepicker"></ui-component>
<ui-component name="LAZY directory"></ui-component>
<ui-component name="editable" path="form">
<div style="width:500px;padding:10px;border:1px solid #E0E0E0">
<div class="row">
<div class="col-xs-3">
Name:
</div>
<div class="col-xs-9">
<ui-bind path="form.name" config="html" class="editable block" data-editable="required:true"></ui-bind>
</div>
</div>
<div class="row">
<div class="col-xs-3">
Email:
</div>
<div class="col-xs-9">
<ui-bind path="form.email" config="html" class="editable block" data-editable="required:1;type:email"></ui-bind>
</div>
</div>
<div class="row">
<div class="col-xs-3">
Nickname:
</div>
<div class="col-xs-9">
<ui-bind path="form.nickname" config="empty:Nickname;html" class="editable block" data-editable="required:true"></ui-bind>
</div>
</div>
<div class="row">
<div class="col-xs-3">
Framework:
</div>
<div class="col-xs-9">
<ui-bind class="editable block" config="html;empty:Choose a framework;change:renderframework" path="form.frameworkid" data-editable="dirsource:frameworks;"></ui-bind>
</div>
</div>
<div class="row">
<div class="col-xs-3">
Country:
</div>
<div class="col-xs-9">
<ui-bind path="form.countries" config="template:{#countrytags}" class="editable block" data-editable="rebind:1;dirsource:countries;type:tags"></ui-bind>
</div>
</div>
<div class="row">
<div class="col-xs-3">
Date:
</div>
<div class="col-xs-9">
<ui-bind path="form.date" config="html:(new Date() || value).format('yyyy-MM-dd')" class="editable block" data-editable="type:date"></ui-bind>
</div>
</div>
</div>
<pre><ui-bind path="form" config="html:JSON.stringify(value, null, ' ')"></ui-bind></pre>
</ui-component>
<script type="text/html" id="countrytags">
{{ foreach m in value }}<span class="editable-tag"><i class="ti ti-times"></i>{{ m }}</span>{{ end }}
</script>
<script>
// Alternative to tags (ui-bind path="path" config="change:myfunc")
function myfunc(data, path, el) {
if (!data)
return el.html('');
var template = '<span class="tag"><i class="ti ti-times"></i>{0}</span>';
var html = '';
for (var i = 0; i < data.length; i++)
html += template.format(data[i]);
el.html(html);
}
var frameworks = [{ id: 0, name: 'Nothing', template: '<b>{{ name }}</b>' }, { id: 1, name: 'jComponent' }, { id: 2, name: 'Angular.js' }, { id: 3, name: 'React' }];
var countries = ['Slovakia', 'Poland', 'Hungary', 'Germany', 'USA', 'Austria', 'Poland', 'Czechia'];
var form = {};
form.date = new Date();
form.name = 'Peter Širka';
form.countries = ['Slovakia', 'Hungary'];
form.frameworkid = 0;
function renderframework(value, path, el) {
return value ? frameworks.findValue('id', value, 'name', DEF.empty) : DEF.empty;
}
</script>