Ember.js Ember JS超级基本路由,仅使用静态模板
我一直在努力思考余烬路由是如何在一个非常基本的层面上工作的,需要在正确的方向上踢一脚。我提供的代码,我已经写了到目前为止,希望你可以跟随,看看发生了什么 我希望看到这样的页面层次结构:Ember.js Ember JS超级基本路由,仅使用静态模板,ember.js,handlebars.js,ember-router,Ember.js,Handlebars.js,Ember Router,我一直在努力思考余烬路由是如何在一个非常基本的层面上工作的,需要在正确的方向上踢一脚。我提供的代码,我已经写了到目前为止,希望你可以跟随,看看发生了什么 我希望看到这样的页面层次结构: index --Red ----Light ----Medium ----Dark --Green ----Light ----Medium ----Dark --Blue ----Light ----Medium ----Dark “中等”颜色实际上是每个嵌套路由的索引,所以我想我需要router.js这样设
index
--Red
----Light
----Medium
----Dark
--Green
----Light
----Medium
----Dark
--Blue
----Light
----Medium
----Dark
“中等”颜色实际上是每个嵌套路由的索引,所以我想我需要router.js
这样设置:
Colors.Router.map(function(){
this.resource('red', { path: '/red' }, function(){
this.route('light-red');
this.route('dark-red');
});
this.resource('green', { path: '/green'}, function(){
this.route('light-green');
this.route('dark-green');
});
this.resource('blue', { path: '/blue'}, function(){
this.route('light-blue');
this.route('dark-blue');
});
});
现在,我只想提供静态html模板(只需要一点#链接到导航用的把手)。。。这样我就可以看到一个工作的原型
主模板在这里
<div id="emberColors">
<header id="mainHeader">
<h1>Ember Colors</h1>
<p>Pick a color</p>
<nav class="navi main">
<ul>
<li>{{#link-to "red" activeClass="active"}}Red{{/link-to}}</li>
<li>{{#link-to "blue" activeClass="active"}}Blue{{/link-to}}</li>
<li>{{#link-to "green" activeClass="active"}}Green{{/link-to}}</li>
</ul>
</nav>
</header>
{{outlet}}
<footer id="footer">
<p>Ok Buh-bye</p>
</footer>
余烬颜色
挑选颜色
- {{{#链接到“red”activeClass=“active”}}红色{{/link to}
- {{{#链接到“blue”activeClass=“active”}}blue{{/link到}}
- {{{#链接到“green”activeClass=“active”}绿色{{/link to}}
{{outlet}}
好的,再见
我为三种颜色中的每种都有一个模板,每种颜色的设置如下:
<section id="blue">
<header>
<h1>The Blue</h1>
<p>Blue is cool.</p>
<nav class="navi sub">
<ul>
<li>{{#link-to "blue.light-blue"}}Light{{/link-to}}</li>
<li>{{#link-to "blue"}}Base{{/link-to}}</li>
<li>{{#link-to "blue.dark-blue}}Dark{{/link-to}}</li>
</ul>
</nav>
</header>
{{outlet}}
</section>
蓝色
蓝色很酷
- {{{链接到“blue.light blue”}轻{{/链接到}
- {{{#链接到“蓝色”}基{{/link到}}
- {{{链接到“蓝色.深蓝色}}深{{/链接到}
{{outlet}}
我将每个“阴影”分解成多个模板
<div class="color-lt">
<p>Light Blue</p>
</div>
浅蓝色
注意:我也知道我可以重用模板并将不同的模型数据加载到模板中,而不是硬编码许多小模板……但我现在只想专注于学习路由
因为这些只是基本的模板,所以我假设(根据我所读的内容)Ember auto会生成很多MVC,并且我不需要定义任何特定的控制器、模型或路由(除了三个主彩色登录页的IndexRoutes)
我知道模板的命名约定将帮助ember完成大部分工作
然而,让我困惑的是命名约定
在router.js
中,通过我希望它在URL中的显示方式来定义路由似乎足够简单
不过,在Handlebar{{{#link to}}
中,我似乎需要引用带有
分隔符(包括破折号或否)的URL(或模板?)名称
当定义索引路由时,它是用PascalCase构造的
我需要一些关于如何正确命名/声明这些路由的帮助,以便Ember能够正确地呈现它们
例如:由于这些页面的嵌套性质…我是否也需要将模板存储在嵌套的目录文件结构中?或者这是由ember路由人为完成的
在我能够具体理解Ember路由之前,我是否应该理解一种通用的MVC路由方法
对不起,我有很多关于这个的问题…看起来它应该是非常简单的,但我不知道为什么我没有得到它。任何帮助将不胜感激
编辑:我还将告诉您,正如我目前所写的,Ember Inspector没有抛出任何我能看到的错误。因此我确信,到目前为止,我的思路是正确的,但我只是没有提供任何东西供路由器解决…我建议您开始使用Ember cli,它解决了大部分Ember问题约定设置可轻松启动您的ember应用程序。哦,我的印象是ember cli仍在开发中,尚未准备好投入生产?请与位于#emberjs的irc的人员交谈。我不在我的项目中使用它,但我知道有人已经在他们的项目中采用了它。它肯定会解决与您有关的大多数问题r项目结构和构建工具。那么,如果您自己不使用它,您如何建议我使用能够解决我的问题的东西呢?我的项目的构建设置很复杂,它基于一个花椰菜设置,可以在服务器端预编译模板。一个类似的演示示例位于:。我的许多构建设置配置都是iN在ember cli上启动。根据您的舒适程度,您可以自己启动或使用工具作为ember cli。基于您的问题,我建议您使用ember cli,也许我错了。