搬到ember-cli后,Ember动作没有开火

时间:2014-06-21 18:47:48

标签: ember.js ember-cli

我已开始将我的应用从脚本标记和单个.js文件中的所有内容移植到ember-cli。我的路由,模型和渲染都可以工作,但由于某些原因,没有控制器操作被触发。没有。无处不在。这个应用程序工作正常,直到我将所有内容都拉到自己的文件中以符合ember-cli目录/模块结构。可能导致这种情况的任何想法?

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

2 个答案:

答案 0 :(得分: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扩展程序中看到这一点,它会显示正在使用的控制器类型。

答案 1 :(得分: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实际上已经占据了一席之地,打破了一切。