Komponenta a include js knihovny
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Pavel Kravčík
- Člen | 1196
Layout:
{ifset #javascript}
{include #javascript}
{/ifset}
Latte komponenty:
{define #javascript}
...
{/define}
- akadlec
- Člen | 1326
Jinak abych jen tak neplkal, řešil bych to assets loaderem, normálně si jej dotáhnout do komponenty a předat mu statické fajly co se mají přidat, já to takto řeším. Navíc to mám uděláno tak že můj assets loader má k dispozici i provider takže registraci statických fajlů můžu udělat přímo v registraci nějaké extension.
- Freema
- Člen | 18
Ahoj nehledáš náhodou tohle:
<?php
namespace FrontModule\Components;
use Nette\Application\UI\Control;
use Nette\ComponentModel\IContainer;
/**
* Description of TestComponents
* @author Tomáš Grasl <grasl.t@centrum.cz>
*/
class TestComponents extends Control {
/**
* @param IContainer $parent
* @param string $name
*/
final function __construct(IContainer $parent = NULL, $name = NULL) {
parent::__construct($parent, $name);
}
/**
* @see Nette\Application\Control#render()
* @return void
*/
public function render() {
$this->renderJS();
$this->renderHTML();
}
/**
* @return void
*/
public function renderJS() {
$this->template->setFile(dirname(__FILE__) . '/js.latte');
$this->template->render();
}
/**
* @return void
*/
public function renderHTML() {
$this->template->setFile(dirname(__FILE__) . '/template.latte');
$this->template->render();
}
}
?>
Pak v šabloně (@layout.latte) volat jednotlivé bloky componetny:
{control test:HTML}
{control test:JS}