使用ember.js我想显示模板'内容作为一个较大页面的部分,而不是让它们互相替换。您能否建议如何更改以下示例以便"关于"部分可以滚动到并显示在" Intro"部分。现在点击"关于"链接只是替换"简介" "关于"我希望他们在我的页面中一起显示。对不起,如果我错过一些基本的刚开始学习ember.js。
的index.html
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
<script src="js/jquery-1.10.2.min.js"></script>
<script src="js/handlebars-1.0.0.js"></script>
<script src="js/ember.js"></script>
<script src="js/ember-data.js"></script>
</head>
<script type="text/x-handlebars" data-template-name="application">
<ul>
<li><a href='#/'>Intro</a></li>
<li><a href='#/about'>About</a></li>
</ul>
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="index">
<nav>
<h1>Intro</h1>
<p>Some intro text</p>
<p></p>
</nav>
</script>
<script type="text/x-handlebars" data-template-name="about">
<nav>
<h1>About</h1>
<p>About...</p>
</nav>
</script>
<script src="js/application.js"></script>
</html>
的application.js
var App = Ember.Application.create({
LOG_TRANSITIONS: true
});
App.Router.map(function(){
this.route('about');
}
);
的style.css
body{
margin: 0 auto;
padding: 0;
}
nav {
border: 0 solid;
margin: 0 auto;
padding: 0;
width:100%;
height:100%;
}
答案 0 :(得分:1)
我认为在这种情况下你不需要出口。
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
<script src="js/jquery-1.10.2.min.js"></script>
<script src="js/handlebars-1.0.0.js"></script>
<script src="js/ember.js"></script>
<script src="js/ember-data.js"></script>
</head>
<script type="text/x-handlebars" data-template-name="application">
<ul>
<li {{action "focusOn" "index"}}>Intro</li>
<li {{action "focusOn" "about"}}>About</li>
</ul>
{{partial "index"}}
{{partial "about"}}
</script>
<script type="text/x-handlebars" data-template-name="_index">
<nav id="index">
<h1>Intro</h1>
<p>Some intro text</p>
<p></p>
</nav>
</script>
<script type="text/x-handlebars" data-template-name="_about">
<nav id="about">
<h1>About</h1>
<p>About...</p>
</nav>
</script>
<script src="js/application.js"></script>
</html>
并且在您的applicationController中,您将有一个动作来关注特定部分:
actions:{
focusOn: function(segment){
//stole it from http://stackoverflow.com/questions/3656467/is-it-possible-to-focus-on-a-div-using-javascript-focus-function
$("#"+segment).scrollIntoView()
}
}