我刚刚开始重构我们的Ember应用程序以使用Pods,以便我们的目录/文件结构更易于管理。同时我升级了Ember-Cli,所以我运行了以下配置:
Ember : 1.8.1
Ember Data : 1.0.0-beta.12
Handlebars : 1.3.0
jQuery : 1.11.2
我更新了environment.js以包含以下内容
modulePrefix: 'emberjs',
podModulePrefix: 'emberjs/pods',
我也尝试将它设置为'app / pods'而只是'pods',但没有运气。
目录结构如下:
emberjs/
app/
controllers - original location, still has some original controllers here for other parts of the system
pods/
job/
parts/
index/
controller.js
route.js
template.hbs
edit/
controller.js
route.js
template.hbs
应用程序构建正常,如果我查看emberjs.js文件,我可以看到pods控制器,路由和模板的各种定义
e.g。
define('emberjs/pods/job/parts/index/controller', ['exports', 'ember'], function (exports, Ember) {
define('emberjs/pods/job/parts/index/route', ['exports', 'ember'], function (exports, Ember) {
define('emberjs/pods/job/parts/index/template', ['exports', 'ember'], function (exports, Ember) {
所以有些东西正在识别豆荚结构。
但是当我尝试访问此路线时问题就出现了。我在控制台中收到一条警告消息并且没有显示任何内容 - 基本上它表示它可以找到模板abd,看起来它正在使用生成的控制器。
generated -> controller:parts Object {fullName: "controller:parts"}
vendor-ver-1423651170000.js:28585 Could not find "parts" template or view. Nothing will be rendered Object {fullName: "template:parts"}
vendor-ver-1423651170000.js:28585 generated -> controller:parts.index Object {fullName: "controller:parts.index"}
vendor-ver-1423651170000.js:28585 Could not find "parts.index" template or view. Nothing will be rendered Object {fullName: "template:parts.index"}
vendor-ver-1423651170000.js:28585 Transitioned into 'jobs.job.parts.index'
如果我查看Chrome中的Ember检查器,我会看到在Routes部分中它显示部件/索引,以将部件/索引控制器的路径作为部件/索引,将模板作为部件/索引。 这是我应该期待的吗? 我不确定当使用豆荚时Ember如何解析各个部分。
为了对此进行测试,我将模板的副本放在templates / parts目录中并重新加载。这次它找到了模板并渲染了它但缺少数据 - 可能是因为它使用默认路由和控制器。
有谁知道我做错了什么。我错过了某个地方的步骤,还是错误地配置了它?
答案 0 :(得分:0)
尝试在添加新路径/控制器/模板时删除它们。不要保留两份副本。
它也可能与您的文件结构无关。尝试创建一个空白的应用程序并逐个复制文件,以查看问题何时开始发生。使用生成器,然后尽可能用您的文件覆盖生成的文件。