我已开始将我的应用从脚本标记和单个.js文件中的所有内容移植到ember-cli。我的路由,模型和渲染都可以工作,但由于某些原因,没有控制器操作被触发。没有。无处不在。这个应用程序工作正常,直到我将所有内容都拉到自己的文件中以符合ember-cli目录/模块结构。可能导致这种情况的任何想法?
渲染的DOM元素都具有' data-ember-action'按预期在他们身上,但点击它们并没有做任何事情,也没有在控制台上使用jQuery进行显式click()
调用。控制台上没有任何类型的输出,因为通常会在未找到"操作时发生"发生错误,我的代码都没有被击中。
答案 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
实际上已经占据了一席之地,打破了一切。