Ember:无法读取未定义和文本字段更新的属性“enterStates”

时间:2013-01-15 12:20:01

标签: ember.js ember-old-router

我对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:无法读取未定义的属性'enterStates'

好的,我再试一次,解释一下我想做什么。

我想要做的是创建一个包含一些数据的表(例如人)。 当我点击表格中的特定人物时,相应的表格数据应显示在下面显示的文本字段中。每当我点击另一个人时,下面的文本字段应该更改为表中当前单击的人的信息。当我单击“新建”按钮时,右侧会显示更详细的Tabview,其中包含一些其他信息。我正在玩ember,到目前为止我刚刚实现了一些视图和路由。我陷入了困境,因为我试图实现更新表格下方文本字段的事件。它更新一次,但在它转换到新状态后(newRoute)没有任何反应。我知道代码是非常原始的,但它只是一个测试,以了解它如何在ember中工作。

2 个答案:

答案 0 :(得分:1)

好的解决方案比我想象的要容易。问题不在于国家的变化。这更像是如何访问数据以及如何实现绑定数据更改的问题。我意识到太晚了,我需要了解变量访问在Ember中的工作原理以及App.initialize()方法的作用。因此,App.initialize()初始化路由器中的所有Controller类。如果要访问控制器中的任何变量,则必须通过路由器获取访问权限,如

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

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

答案 1 :(得分:0)

好的,这是答案的第一个镜头。

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

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

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