1

在调试器中,很容易通过键入App.ClassName.prototype. 好吧,不是很有趣,但当你第一次在“灰烬黑暗”中感受时仍然很好。但是实例呢?这真的是我想要访问的。

如果我的应用程序已移至ActivitiesByDateRoute并实例化,ActivitiesByDateController那么必须有一个实例,ActivitiesByDateController但它存储在什么容器中?我想也许 Ember 调试器(又名 ember-extension)可以帮助我解决这个问题。我认为它应该,但我只是不明白。以下内容对我有什么启示?

似乎实例名称是ember461,但我如何在调试器中操作它?我试过App.ember461了……不行。我试过App.ActivitiesByDateController.ember461了……也不行。

无论如何,你明白我的问题的要点。请帮忙,我是几个缺少实例的对象。

4

2 回答 2

3

以下是一些操作 ember 模型的最简单方法。

只需将模型的属性之一输出到页面上

 {{ someValue }}

将值绑定到输入框

 {{ input value=someValue }}

第一次生成模板时(而不是更改时)记录对象的值。

 {{ log someValue }}

在生成模板时停止模板,以便查看模型。

 {{ debugger }}

输出正在构建的模板的上下文

 {{this}}
 {{model}}
 {{controller}}
 {{view}}

检查路径中 setupController 钩子中的模型,甚至做一些可怕的事情,比如让模型成为你可以在任何地方查看的全局变量(我只是用它来测试/调试)

 App.SomeRoute = Ember.Route.extend({
   setupController: function(controller, model) {
      this._super(controller, model);
      globalSomeModel = model; // I wouldn't recommend polluting the global scope except for testing etc.
   }
 });

尝试抓取部分 ember 并在 ember 运行循环之外使用/操作它们可能会给您带来意想不到的结果。

这是我在另一篇 SO 帖子上留下的一些信息,关于在 ember 运行循环之外获取控制器实例。

var controller = Application.__container__.lookup('controller:someCamelCaseName');

我之前提到的一些东西可以在这个 jsbin http://jsbin.com/efajen/1/edit中查看

于 2013-08-10T21:30:38.467 回答
2

现在从调试器(我的意思是 ember-extension 插件)中,您可以单击元素,并通过控制台中的 $E 检索它。

于 2014-01-20T21:51:59.977 回答