【发布时间】:2014-04-23 16:29:57
【问题描述】:
是否有一种优雅的方式在自定义车把助手中使用 Ember.Mixin 对象中定义的方法?
例如,在我的情况下,我有一个 mixin,App.Format,其中包含许多用于格式化数字、日期等的不同方法,我想让其中一些方法通过自定义帮助程序直接从模板访问(例如{{formatNumber 450324}})。我不只是将方法实现直接放在帮助程序而不是 mixin 中的原因是我还需要这些方法在控制器、视图等中可用。而且为了保持我的代码 DRY,我绝对不希望在 mixin 和 helpers 中有重复的代码。
是否有任何规范的“修饰”方式来实现这一点,还是我只是以完全错误的方式思考它?
编辑:这是一个 jsbin 来更好地说明问题:
http://emberjs.jsbin.com/wunug/1/edit?html,js,output(查看第 33-37 行)
【问题讨论】:
-
我会创建一个使用你的 mixin 的助手。文档可在emberjs.com/guides/templates/writing-helpers 获得
-
@ppcano 对,这就是我试图从我用
Ember.Handlebars.helper()创建的自定义助手访问我的mixin。我遇到的问题是我应该如何从辅助函数中访问/实例化 mixin,以便我可以使用它的方法。 -
App.Format 在您的帮助模块中不可用吗?那样的话,就是你的模块加载器结构有问题,不然写个例子(emberjs.jsbin.com)更好的帮助你。
-
@ppcano 我添加了一个 jsbin 以更好地表达我的意思。对象
App.Format本身已定义并可通过辅助函数使用,我只是不知道如何访问它的方法,即我不能只通过var format = new App.Format()或var format = App.Format.create()创建它的实例。