Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 1. diel - Úvod do AngularJS

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
fb612
Člen
Avatar
fb612:2.2.2014 21:02

hezký článek.

zajímala by mě varianta ukládat objekty aplikace v json formátu a možnost je pak i upravovat.

Odpovedať
Časně do postele a časně z postele vede člověka ke zdraví, moudrosti a bohatství. -Franklin, Benjamin
Avatar
Odpovedá na fb612
Drahomír Hanák:2.2.2014 21:36

Jsem rád, že se článek líbí.

JavaScriptová resp. JSON uložiště jsou nad rámec článků o Angularu, ale třeba se k nim také dostanu. Možností ukládat data v prohlížeči je hned několik: už zmíněný local storage, IndexedDB nebo WebSQL. Z nich přímo podporuje JSON jen IndexedDB. JSON se ale dá v textové podobě uložit v podstatě kamkoli. Záleží na požadavcích, které mám na uložiště/databázi.

Co se týče klasických serverových databází, z vlastní zkušenosti můžu doporučit třeba objektovou databázi MongoDB. Dál například CouchDB. Jako formát také používají JSON a komunikace s těmito databázemi je možná pomocí nějakého Web API (HTTP) nebo přes WebSockets. CouchDB má třeba jako komunikační rozhraní právě Web API, takže je na tohle docela vhodná. Zatím jsem ji ale nezkoušel v reálné aplikace.

JSON se stává na webu de facto standard (podobně jako dřív XML), takže databází a uložišť, která používají JSON, je opravdu hodně. Jen si správně vybrat :)

Avatar
fb612
Člen
Avatar
fb612:2.2.2014 22:04

dekuji, zkusim mongoDB

Odpovedať
Časně do postele a časně z postele vede člověka ke zdraví, moudrosti a bohatství. -Franklin, Benjamin
Avatar
kuba.vaclavik:3.7.2014 22:47

Ahoj, je možné řadit podobně jako objekt i pole?
Zde je kousek kodu jak jsem se o řazení pole pokoušel:

*.js
function mealCtrl($scope) {
$scope.myMeal = ["skopovy","jeh­neci","hovezi","sli­mejsi"];
}

*.html
<div ng-controller="me­alCtrl">
<ul>
<li ng-click="orderProp='my­Meal';reverse = !reverse">SORT</li>
<li ng-repeat="meal in myMeal | orderBy:order­Prop:reverse">{{me­al}}</li>
</ul>
</div>

Takto to neběží. Ví někdo jak setřídit pole?

Odpovedať
Prokrastinací k extrémním výkonům
Avatar
Odpovedá na kuba.vaclavik
Drahomír Hanák:3.7.2014 23:22

S polem je to trochu jiné. Filtru orderBy můžeš předat funkci, podle které bude angular pole řadit. Jako parametr dostane prvek z toho pole a vrátí číslo, podle kterého pak angular prvek zařadí (použije operátory >, <, =). Funguje to asi takto (pseudokód, kde fn je tvoje funkce):

hodnotaA = fn(a);
hodnotaB = fn(b);
if (hodnotaA > hodnotaB) prohod(a, b);

V kontroleru teda definuješ funkci, podle které se bude pole řadit:

$scope.naivniRazeniTextu = function(prvek) { return prvek; };

A pak v šabloně použiješ místo orderProp, naivniRazeniTextu (naivní protože nebere v potaz diakritiku)

<li ng-repeat="meal in myMeal | orderBy:naiveSort">{{ meal }}</li>
Avatar
Odpovedá na Drahomír Hanák
kuba.vaclavik:4.7.2014 0:20

A jak to řazeni spustim?
<li ng-click=" ..? ">SERADIT</li>

Editované
Odpovedať
Prokrastinací k extrémním výkonům
Avatar
Odpovedá na kuba.vaclavik
Drahomír Hanák:4.7.2014 10:09

Můžeš si uložit referenci na funkci do nějaké proměnné a předat filtru orderBy tu proměnnou.

// kontroller
$scope.razeni = angular.noop;
$scope.seraditPodle = function(funkce) {
    $scope.razeni = funkce == null ? angular.noop : funkce;
};
$scope.abecedniRazeni = function(prvek) { return String(prvek); };

// šablona
<button ng-click="seraditPodle(abecedniRazeni)">řadit podle abecedy</button>
<ul>
  <li ng-repeat="meal in myMeal | orderBy:razeni">...</li>
</ul>

angular.noop je funkce, která nic neudělá (angular.noop = function(){};)

Avatar
roman.kratochvil:26.10.2016 15:42

Uvedený příklad nefunguje v IE ani v Edge, funguje v Chrome....

Avatar
Odpovedá na roman.kratochvil
Marian Benčat:26.10.2016 17:29

co konkretne?

Odpovedať
Totalitní admini..
Avatar
roman.kratochvil:27.10.2016 8:46

Nefunguje ten grid (ten seznam), vypadá to, že to je kolem ng-repeat....

Chci sem vložit screeny, ale nevím jak, dole dám vybrat soubory a nic.....

Editované
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 27.