試圖遵循this示例(現在已將更新的ember更新爲1.0rc2),並且我想嵌套模板以開始使用。我在home
模板中有第一個額外的{{outlet}}
,我希望它包含兩個嵌套視圖(一個「簡歷」span9
和另一個「工具表」span3
爲您的引導粉絲)。 「簡歷」將再次嵌套模板,但是一旦我能夠通過這個第一級別,我想我可以做到其他。在Ember.js中嵌套模板
根據this SO?,和我的編輯JS Fiddle answer,我有點看它是怎麼做的,然而,答案是在CoffeeScript中,並且在本例中,路由器是一個比較複雜一點比我很能理解(使用connectOutlets
,考慮到它的一些輔助方法,這是我自己種理解。
最終的結果應該是這個樣子this fiddle。
但我怎麼會得到其他模板在家用路由器渲染,作爲sections
路由器和items
路由器處於不同的路徑,但是,這些將成爲索引路線的一部分/
?我是否需要多個{{outlets}}
?以及如何將適當的模板路由到合適的插座佔位符?
信息:
DEBUG: -------------------------------
DEBUG: Ember.VERSION : 1.0.0-rc.2
DEBUG: Handlebars.VERSION : 1.0.0-rc.3
DEBUG: jQuery.VERSION : 1.9.1
DEBUG: -------------------------------
的index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Resume Builder</title>
<meta name="description" content="A way to create a tailored resume from my CV" />
<meta name="author" content="Chris Frisina" />
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link href="css/bootstrap.min.css" rel="stylesheet" />
<style>
body {
padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
}
</style>
<link href="css/bootstrap-responsive.css" rel="stylesheet" />
<link href="css/RB.css" rel="stylesheet" />
</head>
<body>
<script src="js/libs/jquery-1.7.1.js"></script>
<script src="js/libs/jquery.lorem.js"></script>
<script src="js/libs/bootstrap.min.js"></script>
<script src="js/libs/handlebars-1.0.0.beta.6.js"></script>
<!-- // <script src="js/libs/ember1.js"></script> -->
<script src="js/libs/ember2.js"></script>
<script src="js/RB.js"></script>
<script type="text/x-handlebars" data-template-name="application">
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container-fluid">
<div class="brand home" {{bindAttr class="isHome:active"}} {{action "doHome"}}>Chris Frisina</div>
<div class="nav-collapse pull-right">
<ul class="nav">
<li class="sections"><a>1</a></li>
<li class="sections"><a>2</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container-fluid">
{{outlet}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="index">
<h3 class="demo-panel-title">This is the index template</h3>
{{home}}
</script>
<script type="text/x-handlebars" data-template-name="home">
<div class="row-fluid">
<!-- This is where I resume template should be placed -->
{{resume}}
<!-- This is where I tooltable template should be placed -->
{{tooltable}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="resume">
<div class="span9">
<h1>Viewer</h1>
</div>
</script>
<script type="text/x-handlebars" data-template-name="tooltable">
<div class="span3">
<div id="tooltable" class="tooltable hero-unit affix">
<h1>Tooltable</h1>
<p>Selector 1</p>
<p>Selector 1</p>
</div>
</div>
</script>
</body>
</html>
app.js:
// Attach the application to window
window.RB = Ember.Application.create({});
// Define the main application controller. This is automatically picked up by
// the application and initialized.
RB.ApplicationController = Ember.Controller.extend({
});
RB.ApplicationView = Ember.View.extend({
templateName: 'application'
});
// Router
RB.Router = Ember.Router.extend({
});
RB.Router.map(function(){
});
// Home
RB.HomeController = Ember.Controller.extend({
});
RB.HomeView = Ember.View.extend({
templateName: 'home',
});
// Resume
RB.ResumeController = Ember.ObjectController.extend({
});
RB.ResumeView = Ember.View.extend({
templateName: 'resume'
});
// Tooltable
RB.TooltableController = Ember.ObjectController.extend({
});
RB.TooltableView = Ember.View.extend({
templateName: 'tooltable'
});
//Defer the start until advanceReadiness() is complete
// cant init RB manually, must use advanceReadiness(), which needs defer...
RB.deferReadiness();
// var test = function() {
RB.advanceReadiness();
// });