Augmenting Hello World to use a Trimpath Template
First, create the HelloWorld.Trimpath application. Go to the javascript link in the portal and update the Main instance to the read the following:
zimki.library.require('trimpath.js');
function hello(args) {
// default data object to be passed to the template
var data = { who: 'Superman' };
// if we're called with a 'who' argument, override the default
if (args.who)
data.who = args.who;
// set the pagecount attribute
data.pagecount = 7;
// render the template 'hello'
return zimki.render.trimpath('hello', data );
}
zimki.publishPath("/", hello);
Next, we need to amend the "hello" template. Click on the templates link, then click on the "hello" template to edit it. Make it look like this:
<html>
<head>
<title>my greeting</title>
</head>
<body>
<h1>Hello ${who}</h1>
<p>Pagecount: ${pagecount}</p>
</body>
</html>
Now visit your realm again, and you should see the greeting "Hello Superman".
Append '?who=Lois' to the realm url and watch the page change to 'Hello Lois'; you have made your page take an optional argument.
Unfortunately the pagecount is always 7. See the CookBook.PersistingObjects example for a way to deal with this.
What did we do?
We amended the 'hello()' function to pass an argument to the template, specifying who we should greet. If the function is passed the argument who, that will be passed to the template. Otherwise, the string Superman will be used.
See also
Parent
CookBook.HelloWorld
|