Vlastní makro pro angular
- bluray
- Člen | 178
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
- CZechBoY
- Člen | 3608
Ještě si můžeš změnit latte syntax třeba na asp.
https://latte.nette.org/cs/tags
- David Matějka
- Moderator | 6445
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
- Twista
- Člen | 48
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)