小编Ale*_*s K的帖子

将任意参数传递给车把助手?

对不起,如果之前已经被问了一百万次,但我似乎无法在任何地方找到满意的答案.

我正在尝试构建一个把手帮助器连接到我的i18n库中,我需要它接受任意数量的命名参数,如下所示:

{{i18n yml.text.definition count=2 name="Alex" ... param="hello}}
Run Code Online (Sandbox Code Playgroud)

这将转换为这样的调用:

i18n.t("yml.text.definition", { count: 2, name: "Alex", ... param: "hello"})
Run Code Online (Sandbox Code Playgroud)

这可能吗,还是我完全离开了我的树?

javascript internationalization handlebars.js ember.js

15
推荐指数
1
解决办法
1万
查看次数

获取Ember DS.Model类的服务器URL

在我的模型中使用Ember Data时,在某些情况下我需要解决数据限制并访问服务器上的其他准静态URL.

例如,我有一个Feed记录数据流的对象.为了访问模型,我有一个RESTful端点:

/feeds/:feed_id
Run Code Online (Sandbox Code Playgroud)

为了开始和停止录制Feed,我需要发送PATCH一个网址,如:

/feeds/:feed_id?update_action=start
Run Code Online (Sandbox Code Playgroud)

随后我可以重新加载我的模型并查看其中反映的变化.

在这种情况下,我需要访问$.ajax,并且URL与Ember将使用的URL相同.但是,我无法弄清楚如何从Ember中获取这些信息.

到目前为止,我能做的最好的事情是:

DS.Model.reopen

  rootForModel: Ember.computed( ->
    @.store.adapterForType(@).serializer.rootForType(@.constructor)
  )

  pluralRootForModel: Ember.computed( ->
    @.store.adapterForType(@).serializer.pluralize(@get("rootForModel"))
  )
Run Code Online (Sandbox Code Playgroud)

这样App.FeedItem我可以这样做:

this.get("rootForModel") # feed_item
this.get("pluralRootForModel") # feed_items
Run Code Online (Sandbox Code Playgroud)

而且我猜这将与适配器等中的任何设置保持同步.

随后,我可以这样打电话:

$.ajax
  url: @get("pluralRootForModel") + "/" + @get("id")
  data:
    update_action: "start"
  type: "PATCH"
Run Code Online (Sandbox Code Playgroud)

这完全是在左场吗?是否有更直接的方法来撰写这些网址?

另一个(相关问题)是获取给定模型的下划线名称.

App.MyModelController  => my_model_controller
Run Code Online (Sandbox Code Playgroud)

我做过类似的事情:

Ember.Object.reopenClass

###*
 * The underscored name for this.
 * i.e. App.MyClass -> my_class
 * From an instance, use this.constructor.underscored_class_name()
 * @return {String} This classname, underscored. …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

7
推荐指数
1
解决办法
1506
查看次数

Ember-rails项目是一个可安装的发动机?

Ember&Rails在这里提出了一个严肃的问题.

我正在构建一个利用ember-rails设置的项目,如下所示:https://github.com/dgeb/ember_data_example

但是,为了使事情变得更加复杂,该项目旨在打包为一个宝石,以包含在更大的应用程序中.为此,我创建了一个可安装的引擎,包含一个用于测试的虚拟项目.

问题是,ember-rails,特别是把手无法在预定位置找到模板.这可以防止许多功能正常工作.

在移动把手模板目录方面,我在这里找到了一个解决方案:如何使用ember-rails gem为我的HandlebarsJS模板指定备用目录?

总之,它指出我们可以通过设置值来指定application.rb中模板的路径 config.handlebars.templates_root

但是,我认为如果需要将另一个 ember-rails引擎加载到更大的应用程序中,这将导致冲突..并且需要自己的配置设置.

有没有人有这些设置的经验,有没有办法让命名空间的ember应用程序在更大的上下文中运行良好?

顺便说一句,这是在ruby 1.9.2上运行最新ember-rails的rails 4.

ruby-on-rails handlebars.js ember.js

6
推荐指数
1
解决办法
519
查看次数

如何抛出Ember.js错误?

在ember.js应用程序中,我们如何抛出应用程序错误(让它们在控制器 - 路径 - 应用程序层次结构中冒泡?)

我的用例与捕获非ember-data ajax错误并通过与ember数据错误相同的路径处理它们有关.

(即,当遇到来自非restful端点的错误时,允许该错误在应用程序中冒泡,类似于ember-data错误)

ember.js

5
推荐指数
2
解决办法
5598
查看次数