我对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中工作。
答案 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/
由于我不明白它应该如何运作,我不确定整体行为。我让你解释一下流程(请编辑问题)。 欢迎任何其他评论:)