1

我想在包/文件夹中组织我的视图以避免长列表。使用(伟大的)新路由器,默认情况下会提供一个视图,我们可以通过创建一个具有约定名称的新视图来更改该视图。例如:

match('/').to('home');

用途:

  • “家”车把模板
  • App.HomeView
  • App.HomeController

现在我想使用:

  • “my_package/home”车把模板(作品)
  • App.MyPackage.HomeView
  • App.MyPackage.HomeController

当我使用 gem“ember-rails”(GIT 版本)和生成器时:

rails g ember:view my_package/home

我得到:

DemoEmberRails.MyPackage::HomeView = Ember.View.extend({
});

这不是正确的 javascript 代码(似乎是 ruby​​ 代码的摘录)。

我试过了:

DemoEmberRails.MyPackage = {};
DemoEmberRails.MyPackage.HomeView = Ember.View.extend({
});

但它不被路由器使用。

怎么做?

4

3 回答 3

0

看起来目前不支持此功能,但是,存在添加此功能的拉取请求。

见: https ://github.com/emberjs/ember.js/pull/1679

于 2013-01-06T22:15:42.460 回答
0

正如你所说

match('/').to('home');

预计和。AppName.HomeRoute_ 所以如果你有一个模板和一个类似于AppName.HomeViewAppName.HomeControllerdata-template-name="home"

AppName.HomeView = Ember.View.extend({
  teplateName: 'home'
});

然后 ember 会自动将/路由与这个视图连接起来。

新的ember 路由指南在这里很有帮助。

于 2013-01-05T11:49:34.847 回答
0

我认为您应该使用 Ember.Namespace 对它们进行命名空间。我仍然不确定路由器是否会自动搜索命名空间,但它可以吗?

http://emberjs.com/api/classes/Ember.Namespace.html

于 2013-01-05T11:18:39.473 回答