1

我已经开始将我的应用程序从脚本标签和单个 .js 文件中的所有内容移植到 ember-cli。我的路线、模型和渲染都可以正常工作,但由于某种原因,没有触发任何控制器操作。没有任何。任何地方。这个应用程序运行良好,直到我将所有内容都拉到他们自己的文件中以符合 ember-cli 目录/模块结构。有什么想法可能导致这种情况吗?

渲染的 DOM 元素都按预期在其上具有“data-ember-action”,但单击它们不会做任何事情,也不会click()在控制台上使用 jQuery 进行显式调用。控制台上没有任何类型的输出,这通常发生在发生“未找到操作”错误时,并且我的代码都没有被命中。

4

2 回答 2

1

这只是巨大的愚蠢和运气。在我的原始应用程序中,我像这样初始化了 Ember 应用程序:

Ember.Application.extend({
    customEvents: {
        tap: "click",
        click: null //Prevent tap from registering as two clicks
    }
});

显然,这完全没有任何作用,因为我从不存储和重用该调用的结果。在 ember-cli 应用程序中:

var App = Ember.Application.extend({
  modulePrefix: 'my-app', // TODO: loaded via config
  Resolver: Resolver,
  customEvents: {
    tap: "click",
    click: null //Prevent tap from registering as two clicks
  }
});

这一次customEvents,居然站稳了脚跟,打破了一切。

于 2014-06-21T19:55:00.253 回答
1

很可能它没有使用您的控制器,它可能正在构建一个假人。您的命名模式可能与 ember-cli 所期望的不匹配。

您可以通过在控制器中扔一个属性来相当快地证明这一点

var IndexController = Ember.ObjectController.extend({
  foo: 'bar'
});

export default IndexRoute;

然后在您的模板中引用该属性

I'm using the controller and it's property is {{foo}}

您还可以在 ember chrome 扩展中看到这一点,它显示正在使用的控制器类型。

于 2014-06-21T19:32:21.607 回答