【发布时间】:2015-01-05 04:18:16
【问题描述】:
这是我的目录结构:
controllers/
---- restaurant/
----items.js
---- index.js
---- restaurant.js
还有我的路由器声明:
this.route("restaurants",{
path: "/restaurants"
});
this.resource("restaurant", {
path: "/restaurants/:restaurant_id"
}, function() {
this.resource("items", {
path: "/items"
});
});
我的项目控制器(位于restaurants/items.js)以以下内容开头:
export default Ember.ObjectController.extend({
needs: ["restaurant"],
restaurant: Ember.computed.alias('controllers.restaurant.model')
然后是在 hte restaurant 下添加项目的操作。
但是,我不断收到错误消息,提示需要将“餐厅”添加到“需求”中:
ReferenceError:(生成的项目控制器)#needs 不包括
restaurant。要从(生成的项目控制器)访问餐厅控制器,(生成的项目控制器)应该有一个needs属性,它是它可以访问的控制器数组
这是我的设置(Ember-CLI 0.1.2 和 Ember 1.7) - 由于我使用壁炉适配器与 firebase 一起工作,我认为它不支持升级 Ember(根据我的尝试)。
DEBUG: -------------------------------
DEBUG: Ember : 1.7.0"
DEBUG: Ember Data : 1.0.0-beta.10"
DEBUG: Handlebars : 1.3.0"
DEBUG: jQuery : 1.11.2"
DEBUG: Fireplace : 0.2.9"
DEBUG: -------------------------------
我已经尝试过 Stackoverflow 的其他答案(例如 How to communicate between controllers in Ember.js),但它们似乎没有帮助。
有人知道这里发生了什么吗?
【问题讨论】:
-
奇怪,一切看起来都不错。 ember-cli 是否正确监视更改(崇高文本有时会将其锁定)。也许尝试重新启动 ember-cli。你有余烬检查员吗?确保当前路由使用正确的控制器?
-
嗨亚伦,感谢您的回复。我使用 Atom 而不是 Sublime,并且我重新安装了 ember-cli 并多次重新启动服务器,但问题仍然存在。这很奇怪——根据 Ember Inspector 也正在加载正确的模型。另外,我已经在具有相同存储库的不同计算机上的两个不同操作系统(Windows + Mac)上进行了尝试,问题仍然存在。一个使用 0.1.5 版本的 ember,另一个使用 0.1.2。
标签: javascript ember.js nested ember-cli controllers