Ember.js 使用路由时,如何访问视图属性和操作处理程序?
似乎当我在Ember.js中使用新的路由功能时,视图上定义的属性和操作处理程序无法从其模板访问。相反,只有控制器的属性可用,应用程序在路由器中查找操作处理程序 以下是问题的一个示例: 如果单击我的个人资料-->照片-->测试,您将在控制台中看到此错误: 无法响应状态为的事件testButton root.profile.photos 显然,App.PhotosView中定义的以下操作处理程序对事件不可用Ember.js 使用路由时,如何访问视图属性和操作处理程序?,ember.js,Ember.js,似乎当我在Ember.js中使用新的路由功能时,视图上定义的属性和操作处理程序无法从其模板访问。相反,只有控制器的属性可用,应用程序在路由器中查找操作处理程序 以下是问题的一个示例: 如果单击我的个人资料-->照片-->测试,您将在控制台中看到此错误: 无法响应状态为的事件testButton root.profile.photos 显然,App.PhotosView中定义的以下操作处理程序对事件不可用 App.PhotosView = Em.View.extend({ template
App.PhotosView = Em.View.extend({
templateName: 'photos',
testButton: function(){
alert('test Button');
}
});
是否有一种方法可以将我的操作处理程序保存在相关的视图类中?我遗漏了什么吗?操作的默认上下文已更改为路由器。如果希望视图处理操作,则需要如下指定:
<button {{action testButton target="view"}}>test</button>
测试
这是您的小提琴的工作版本:操作的默认上下文已更改为路由器。如果希望视图处理操作,则需要如下指定:
<button {{action testButton target="view"}}>test</button>
测试
这是您的小提琴的一个工作版本:@buuda钉住了它,但如果您想阅读更多内容,请参阅动作助手的嵌入式文档:
@buuda已经解决了这个问题,但如果您想阅读更多内容,请参阅action helper的嵌入式文档:
谢谢!这正是我要找的。FWIW,我还找到了访问视图属性的方法:只需在属性名称之前添加“view.”,例如{{view.property}}。是的,内容的上下文已更改为控制器。很难跟上变化。谢谢!这正是我要找的。FWIW,我还找到了访问视图属性的方法:只需在属性名称之前添加“view.”,例如{{view.property}}。是的,内容的上下文已更改为控制器。很难跟上变化。谢谢,嵌入式文档非常有用。谢谢,嵌入式文档非常有用。