JsRender系列-11

<!DOCTYPE html>

<html>

<head>

    <script type="text/javascript" src="scripts/jquery.js"></script>

    <script type="text/javascript" src="scripts/jquery-ui.js"></script>

    <script type="text/javascript" src="scripts/jsrender.js"></script>

    <link href="scripts/demos.css" rel="stylesheet" />

    <link href="scripts/movielist.css" rel="stylesheet" />

	<style>

	pre { font-size:10pt; font-weight:bold; }

	</style>

</head>

<body>

<a href="../demos.html">JsRender Demos</a><br />



<h3>Example Scenario: Accessing parent data.</h3>



<!---------------------- First Example ---------------------->



<div class="subhead">Stepping up through the views (tree of nested rendered templates)</div>







<table>

	<thead><tr><th>Title</th><th>Languages (+specialMessage)</th></tr></thead>

	<tbody id="movieList1"></tbody>

</table>



<!---------------------- Second Example ---------------------->



<div class="subhead">Setting contextual template parameters, accessible in all nested contexts as <em>~nameOfParameter</em>:</div>





<table>

	<thead><tr><th>Title</th><th>Languages (+specialMessage)</th></tr></thead>

	<tbody id="movieList2"></tbody>

</table>



<!---------------------- Third Example ---------------------->



<div class="subhead">Using the top-level data, accessible in all nested contexts as <em>~root</em>:</div>





<table>

	<thead><tr><th>Title</th><th>Languages (+specialMessage)</th></tr></thead>

	<tbody id="movieList3"></tbody>

</table>



<!--=================== Demo ===================-->



<!------------------ Templates ------------------>



<script id="movieTemplate1" type="text/x-jsrender">

	{{for movies}}

		<tr>

			<td>'{{>title}}': showing at the '{{>#parent.parent.data.theater}}'</td>

			<td>

				{{if languages}}

					{{for languages}}

						{{>#data}}{{>#parent.parent.parent.parent.parent.data.specialMessage(#data, #parent.parent.data.title)}}<br/>

					{{/for}}

				{{/if}}

			</td>

		</tr>

	{{/for}}

</script>



<script id="movieTemplate2" type="text/x-jsrender">

	{{for movies ~theater=theater ~specialMessage=specialMessage}}

		<tr>

			<td>'{{>title}}': showing at the '{{>~theater}}'</td>

			<td>

				{{for languages ~title=title}}

					{{>#data}}{{>~specialMessage(#data, ~title)}}<br/>

				{{/for}}

			</td>

		</tr>

	{{/for}}

</script>



<script id="movieTemplate3" type="text/x-jsrender">

	{{for movies}}

		<tr>

			<td>'{{>title}}': showing at the '{{>~root.theater}}'</td>

			<td>

				{{for languages ~title=title}}

					{{>#data}}{{>~root.specialMessage(#data, ~title)}}<br/>

				{{/for}}

			</td>

		</tr>

	{{/for}}

</script>



<!------------------ Script ------------------>



<script type="text/javascript">



    var model = {

        specialMessage: function (language, title) {

            if (language === "French" && title === "City Hunter") { return ": (special offer)"; }

        },

        theater: "Rialto",



        movies: [

			{

			    title: "Meet Joe Black",

			    languages: [

					"English",

					"French"

			    ]

			},

			{

			    title: "City Hunter",

			    languages: [

					"Mandarin",

					"French",

					"Chinese"

			    ]

			}

        ]

    };



    $("#movieList1").html(

		$("#movieTemplate1").render(model)

	);



    $("#movieList2").html(

		$("#movieTemplate2").render(model)

	);



    $("#movieList3").html(

		$("#movieTemplate3").render(model)

	);



</script>



</body>

</html>

  

你可能感兴趣的:(jsrender)