1

我对 ember 有以下问题。

我有一个包含一组数据的表。我有一个事件返回表的当前元素。然后它通过转换到新状态来打开另一个视图,并将选定的表数据写入文本字段。

 click: function(e) {
        var element = $(e.target).closest("td");
        App.tee = element.text().trim();
        var router;
        router = this.get('controller.target.router');
        router.transitionTo('newRoute')

如您所见,我的路由器中还有一些其他路由。最后两条路线(家庭和个人资料)是导航选项卡的一部分。他们在我点击桌子旁边工作得很好。然后,当我单击选项卡时出现以下错误: Uncaught TypeError: Cannot read property 'enterStates' of undefined

好的,我再次尝试解释我想要做什么。

我想做的是用一些数据(例如人)创建一个表。当我单击表格中的特定人员时,相应的表格数据应显示在下面出现的文本字段中。每当我单击另一个人时,下面的文本字段应更改为表中当前单击的人的信息。当我单击“新建”按钮时,右侧会出现更详细的 Tabview 以及一些附加信息。我在玩 ember,到目前为止,我只是实现了一些视图和路由。我被困住了,因为我试图实现更新表格下方文本字段的事件。它更新一次,但在它转换到新状态(newRoute)之后什么也没有发生。我知道代码非常原始,但这只是了解它在 ember 中如何工作的测试。

4

2 回答 2

1

好的,解决方案比我想象的要容易。问题不在于状态变化。更多的是如何访问数据以及如何影响绑定数据的更改的问题。我意识到我需要了解 Ember 中的变量访问是如何工作的以及 App.initialize() 方法究竟做了什么,为时已晚。所以 App.initialize() 会初始化路由器中的所有 Controller 类。如果您想访问控制器中的任何变量,您必须通过路由器获得访问权限,例如

{{view Ember.TextField valueBinding="App.router.tableController.person"}} 

其次,我不熟悉 Ember 中 set 和 get 方法的用法以及 extend 和 create 之间的区别。之前我想知道 ember 在哪里实例化我的对象。所以我的问题与状态无关,这只是对 ember 框架的完全误解。我是菜鸟,仅此而已。

于 2013-01-17T14:24:17.393 回答
0

好的,这是答案的第一枪。

  • 我认为主要问题只是一个错字gotoHome而不是goToHome模板。
  • 顺便说一句,我通过使用<button {{action }}></button>而不是 Ember.Button 来消除一些弃用警告。
  • 当我单击表格时还有一些其他警告,因为您引用了一些不存在的属性。

这是相应的小提琴:http: //jsfiddle.net/Sly7/rKw9A/25/

由于我不明白它应该如何工作,我不确定整体行为。我让你解释一下流程(请通过编辑问题)。欢迎任何其他评论:)

于 2013-01-15T22:12:48.527 回答