n:attributy ve více šablonách – Namespace ‚n‘ is not bound

Level3301
Člen | 10
+
0
-

Zdravím,
v projektu mám více jak jednu šablonu…
Když se ale pokusím použít n:attributy v jiné než upravené „defaultní“ šabloně, tak mi to hlásí chybu:
Namespace ‚n‘ is not bound.
Nechce se mi psát odkazy staticky…
Předem děkuji za jakoukoliv pomoc.

Artify
Člen | 2
+
0
-

Též zdravím,
taky jsem měl stejný problém a nakonec jsem to řešil statickýma odkazama.
Tím mám na mysli URI.
např.

<a href="URI ...">TEXT ...</a>

Lepší řešení bohužel nemám …

Marek Bartoš
Nette Blogger | 1280
+
+1
-

Můžete sem dát ukázku chyby nebo minimální repliku? Takovou chybu jsem viděl jen v xml, latte nic takového nedělá. n:attributy by měly fungovat v jakékoli latte šabloně.

Level3301
Člen | 10
+
0
-

Mabar napsal(a):

Můžete sem dát ukázku chyby nebo minimální repliku? Takovou chybu jsem viděl jen v xml, latte nic takového nedělá. n:attributy by měly fungovat v jakékoli latte šabloně.

Latte
"":https://cdn.discordapp.com/…/unknown.png
Výsledek – odkaz jakoby neexistuje
"":https://cdn.discordapp.com/…/unknown.png

Editoval Level3301 (20. 2. 2021 13:08)

Marek Bartoš
Nette Blogger | 1280
+
0
-

Otevřete nastavení File | File Properties | Associate with File Type... a přepněte na Latte. Přepli jste si nastavení typu souboru na xml a podle toho s ním phpstorm nakládá

mesour
Nette Blogger | 236
+
0
-

Level3301 napsal(a):

Zdravím,
v projektu mám více jak jednu šablonu…
Když se ale pokusím použít n:attributy v jiné než upravené „defaultní“ šabloně, tak mi to hlásí chybu:
Namespace ‚n‘ is not bound.
Nechce se mi psát odkazy staticky…
Předem děkuji za jakoukoliv pomoc.

Ahoj, nehlásí ti PhpStorm nějaké exceptiony (vpravo dole v PhpStormu bliká červený vykřičník)? Pokud by to tak bylo, mohl by jsi sem přeposlat stack trace té exceptiony?

Editoval mesour (20. 2. 2021 13:20)

Šaman
Člen | 2667
+
+2
-

Příště zkus lépe popsat chybovou situaci. Když napíšeš, že TO hlásí chybu, předpokládáme, že TO je aplikace. Na což moc nemáme nápady proč by jedna šablona n:atributy znala a druhá ne.
Chápu to tedy tak, že ti aplikace bez problémů běhá, ale jeden konkrétní editor se chová zvláštně?

Editoval Šaman (20. 2. 2021 13:34)

Level3301
Člen | 10
+
0
-

Mabar napsal(a):

Otevřete nastavení File | File Properties | Associate with File Type... a přepněte na Latte. Přepli jste si nastavení typu souboru na xml a podle toho s ním phpstorm nakládá

Přepl jsem na „Latte template files“, ale problém přetrvává.

Level3301
Člen | 10
+
0
-

Šaman napsal(a):

Příště zkus lépe popsat chybovou situaci. Když napíšeš, že TO hlásí chybu, předpokládáme, že TO je aplikace. Na což moc nemáme nápady proč by jedna šablona n:atributy znala a druhá ne.
Chápu to tedy tak, že ti aplikace bez problémů běhá, ale jeden konkrétní editor se chová zvláštně?

Příště popíšu lépe.
Aplikace problémy nedělá…
Nevím jak se chová editor, ale vím, že se n:href=„Home:default“ nezmění na href=„/Home/default“.

Editoval Level3301 (20. 2. 2021 13:47)

Marek Bartoš
Nette Blogger | 1280
+
0
-

Ujisti se, že jsi ve File pattern vybral *.latte, by default je v patternu jen název otevřeného souboru, takže se to pro jiné nenastaví.

Též je možné, že budeš muset promazat File name patterns pro XML či XHTMLSettings | Editor | File types

Marek Bartoš
Nette Blogger | 1280
+
0
-

ale vím, že se n:href=„Home:default“ nezmění na href=„/Home/default“

A ty máš routu pro Home:default s url adresou Home/default? Něco jako new Route('Home/default', 'Home:default')

Level3301
Člen | 10
+
0
-

Mabar napsal(a):

Ujisti se, že jsi ve File pattern vybral *.latte, by default je v patternu jen název otevřeného souboru, takže se to pro jiné nenastaví.

Též je možné, že budeš muset promazat File name patterns pro XML či XHTMLSettings | Editor | File types

Provedl jsem, ale problém stále přetrvává. :(

Level3301
Člen | 10
+
0
-

Mabar napsal(a):

ale vím, že se n:href=„Home:default“ nezmění na href=„/Home/default“

A ty máš routu pro Home:default s url adresou Home/default? Něco jako new Route('Home/default', 'Home:default')

Takhle vypadá RouterFactory

final class RouterFactory
{
	use Nette\StaticClass;

	public static function createRouter(): RouteList
	{
		$router = new RouteList();

        $router->addRoute('Admin/Home/default', 'Admin:Home:default');
        $router->addRoute('Default/Home/default', 'Default:Home:default');

		$router->withModule("Default")
            ->addRoute("<presenter>/<action>", "Home:default")
            ->addRoute("<presenter>/<action>", "Login:default")
            ->addRoute("<presenter>/<action>", "Login:out");

		$router->withModule("Admin")
            ->addRoute('<presenter>/<action>', 'Home:default')
            ->addRoute('<presenter>/<action>', 'News:default');

		return $router;
	}
}

Problém je v tom, že n:href funguje v mé základní šabloně, ale v té druhé ne.

Editoval Level3301 (20. 2. 2021 14:01)

Level3301
Člen | 10
+
0
-

Nakonec jsem se rozhodl, že budu používat href=„{plink Home:default}“.

Marek Bartoš
Nette Blogger | 1280
+
+2
-

Home:default je relativní odkaz, v závislosti na modulu se nebude chovat stejně. Absolutní odkazy začínají dvojitečkou, takže bys použil například :Default:Home:default
n:href se ti navíc bude chovat rozdílně v závislosti na tom, zda je použit v presenteru nebo komponentě

Viz kapitolu https://doc.nette.org/…eating-links