ember.js - Ember-Cli 重构以使用 Pod

标签 ember.js refactoring ember-cli ember-pods

我刚刚开始重构我们的 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 Controller 、路由和模板的各种定义

例如
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) {

所以有些东西正在识别 pod 结构。

但是当我尝试访问这条路线时问题就来了。我在控制台中收到一条警告消息,但没有显示任何内容 - 基本上它说它可以找到模板 abd 看起来它正在使用生成的 Controller 。
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 部分,它显示了部分/索引,将部分/索引 Controller 的路径显示为部分/索引,将模板显示为部分/索引。
这是我应该期待的吗?
我不确定 Ember 在使用 pod 时如何解析各个部分。

为了测试这一点,我将模板的副本放在 templates/parts 目录中并重新加载。这次它找到了模板并渲染它但缺少数据 - 可能是由于它使用默认路由和 Controller 。

有谁知道我做错了什么。我是否遗漏了某个步骤,或者错误地配置了它?

最佳答案

添加新路由/ Controller /模板时尝试删除旧路由/ Controller /模板。不要保留两份。

它也可能与您的文件结构无关。尝试创建一个空白应用程序并一个一个复制文件,以查看问题何时开始发生。如果可能,请使用生成器,然后用您的生成器覆盖生成的文件。

关于ember.js - Ember-Cli 重构以使用 Pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28453255/

相关文章:

express - JSONAPI 指定的访客和授权用户的序列化器 `User` 模型的最佳实践是什么?

if-statement - #if 语句抛出 TypeError : node is undefined

eclipse - 可以比较文件子部分的差异工具

java - Eclipse 支持重构火车残骸

javascript - Ember 对 ='change' 事件的操作

javascript - 为什么我的网络应用程序不会将数据发送到我的 google firebase 数据库?

ember.js - 有什么方法可以在 Ember Data 中使用单个 POST 请求创建一批多条记录?

ember.js - 我应该在 Ember.js 的 Route 或 Controller 中过滤记录吗?

java - 如何从代码中重构全局变量

ember.js - Ember CLI 找不到部分