Deit variable referencing

Martin Tschierschke via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Jan 3 10:40:26 PST 2016


On Saturday, 2 January 2016 at 00:15:32 UTC, Jason Jeffory wrote:
> Ok, So Deit allows D code inside html... looks great.
>
> But how do external variables work? If I create a variable in 
> the server(such as a class), can an html file access it easily? 
> (not having to jump through hoops)
>
>
> doctype html
> html
> 	head
> 		title D string interpolations test
> 	body
> 		- import std.algorithm : min;
> 		p Four items ahead:
> 		- foreach( i; 0 .. 4 )
> 			- auto num = i+1;
> 			p Item #{ num + extvar }
> 		//- Unescaped output
> 		p Prints 8: !{ min(10, 2*6, 8) }
>
>
> here, extvar is a int located somewhere else(other deit html 
> file that has ran(hopefully) or vibe.d project that created it.
>
> (Obviously there has to be a way to get extvar)
>
> E.g., If deit can have a special variable called context that 
> each html file can access and along with the vibe.d project, 
> then we can easily pass the variable.
>
>
> doctype html
> html
> 	head
> 		title D string interpolations test
> 	body
> 		- import std.algorithm : min;
> 		p Four items ahead:
> 		- foreach( i; 0 .. 4 )
> 			- auto num = i+1;
> 			p Item #{ num + (int)context["extvar"] }
> 		//- Unescaped output
> 		p Prints 8: !{ min(10, 2*6, 8) }
>
> or whatever

I am a very new at this, but I think "the solution" is to call  
res.render! with all alias names you need.
Defining int extvar =... before; you use:

   res.render!("your-template.dt",extvar,..)

hope this helps. Regards mt.


More information about the Digitalmars-d-learn mailing list