我是ember.js的新手(但我从CakePHP体验和JS中了解MVC) 在过去的两周里,我在工作中构建了一个小应用程序 使用REST适配器加载JSON数据。我添加了一些带动作的按钮 一切正常,我学到了很多,但需要时间来弄清楚细节。
我的所有控制器,路线和模型目前都没有在文件夹结构中进行组织 这在ember.js-Guide中描述:http://guides.emberjs.com/v1.12.0/concepts/naming-conventions/
现在我想将文件移动到文件夹结构中。但是那时应用程序不起作用。 在我看来,解析器无法在运行时查找文件。但为什么呢?
一个不起作用的简单示例:
in" app.js" (在" index.html"中加载-tag):
App = Ember.Application.create({
LOG_RESOLVER: true // just for debugging
});
;" router.js" (在&#34之后加载-tag; app.js"在" index.html"中):
App.Router.map(function(){
this.route('mytest');
});
in" routes / mytest.js":
export default Ember.Route.extend({
setupController: function(controller) {
controller.set('title', "Hello world!");
}
});
in" controllers / mytest.js":
export default Ember.Controller.extend({
appName: 'mytest'
});
in" indes.html":
<script type="text/x-handlebars">
{{#link-to 'mytest' }}Mytest{{/link-to}}<br/>
{{outlet}}
</script>
<script type="text/x-handlebars" id="mytest">
mytest Template
<h1>appName: {{appName}}</h1>
<h2>title: {{title}}</h2>
</script>
Handlebar-template&#34; mytest&#34;已显示,但{{appName}}和{{title}}为空。 如果我将&#34; mytest&#34; -Template移动到&#34; templates / mytest.hbs&#34;什么都没有显示出来。
我认为解析器不起作用。或者命名约定指南有什么问题?
我的另一个假设: Resolver-Stuff仅在使用类似ember-cli的构建过程时才有效。
使用&#34; ember-1.12.1.debug&#34;,&#34; ember-template-compiler-1.12.1&#34;
感谢您的帮助。
-update- 在这里&#34; index.html&#34; - 简单的例子:
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title></title>
</head>
<body>
<script type="text/x-handlebars">
{{#link-to 'mytest' }}Mytest{{/link-to}}<br/>
{{outlet}}
</script>
<script type="text/x-handlebars" id="mytest">
mytest Template
<h1>appName: {{appName}}</h1>
<h2>title: {{title}}</h2>
</script>
<script src="libs/jquery-2.1.4.js"></script>
<script src="libs/ember-template-compiler-1.12.1.js"></script>
<script src="libs/ember-1.12.1.debug.js"></script>
<script src="app.js" ></script>
<script src="router.js" ></script>
</body>
</html>
答案 0 :(得分:0)
目前我猜想有关命名约定的ember.js指南(guides.emberjs.com/v1.12.0/concepts/naming-conventions)被遗漏了,那么&#34; Ember.js使用运行时解析器来在没有大量样板的情况下连接你的物品&#34;只适用于&#34; ember-cli&#34;或更旧的&#34; ember应用套件&#34;或其他工具,但不是在应用程序运行时。因此,在运行JS应用程序时,不会从服务器加载任何JS文件。