Vlastní makro pro angular

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
bluray
Člen | 178
+
0
-

Dobrý den, potřeboval bych poradit. Latte má problém s angularem. Vadí mu {{}}. Rozhodl jsem se tedy vytvořit vlastní makro které mi nahradí toto {ng něco} za toto {{něco}}
Udělal jsem to takto:

class AngularMacro extends \Latte\Macros\MacroSet{
    public static function install(Compiler $compiler) {
        $set = new static($compiler);
        $set->addMacro('ng', [$set, 'angular']);
    }

    private function angular(\Latte\MacroNode $macroNode, \Latte\PhpWriter $phpWriter) {
        return $phpWriter->write( "echo '{{' . %node.word . '}}'");
    }
}

a zaregistroval v configu:

nette:
	latte:
		macros:
			- AngularMacro::install

V latte pak mám

{block content}
{ng něco}

a vznikne Latte\CompileException Thrown exception 'Call to undefined method parent::angular().

Kde může být chyba? díky za radu

bluray
Člen | 178
+
0
-

Už jsem to vyřešil, metoda AngularMacro::angular nesmí být private ale protected. Ale mám problém, že ted se macro vypíše, ale angular ho nepřeloží, tj. zobrazuje se mi {{něco}}.

CZechBoY
Člen | 3608
+
0
-

Však to si chtěl, ne?

CZechBoY
Člen | 3608
+
0
-

Ještě si můžeš změnit latte syntax třeba na asp.
https://latte.nette.org/cs/tags

David Matějka
Moderator | 6445
+
0
-

CZechBoY napsal(a):

Ještě si můžeš změnit latte syntax třeba na asp.
https://latte.nette.org/cs/tags

to jiz bylo z masteru odebrano https://github.com/…07b5db5a6d68

David Kudera
Člen | 455
+
+2
-

nebo stačí psát mezeru za závorky: {{ neco }}

greeny
Člen | 405
+
0
-

Nebo v Angularu jde změnit {{ za např [[ (ex-kolega tak používal Angular + Nette vcelku bezbolestně)

Twista
Člen | 48
+
+3
-

jojo, my jsme taky zmenili syntax angularu, protoze nam to kolidovalo, zapis je jednoduchy

app.config(['$interpolateProvider', function ($interpolateProvider) {
    $interpolateProvider.startSymbol('[:');
    $interpolateProvider.endSymbol(':]');
}]);

tohle zmeni zapis v sablonach na [: angular_variable :]

Editoval Twista (2. 1. 2016 16:35)