emberjs:当我尝试使用动作助手时,我得到 - Handlebars错误:无法在对象上找到属性'action'

时间:2012-04-03 23:06:02

标签: ember.js

我一直在尝试将动作帮助器与ember一起使用。我收到以下错误: Handlebars错误:无法在对象上找到属性“action”。

我想我在这里的简化视图中遵循了这些例子:

<script type="text/x-handlebars" data-template-name="user-edit">
    <p><a href="#" {{action "showUsersList"}}>Back</a></p>
</script>

视图对象:

App.UserEditView = Ember.View.extend({
    templateName: 'user-edit',
    userBinding: 'App.usersController.selectedUser',
    tagName: 'span',
    didInsertElement: function () {
        $('h1').html('Edit User');
        document.title = 'Edit User';
    },
    showUsersList: function(event) {
        App.usersController.showUsersList();
    }
});

知道为什么我不能像示例中那样使用动作帮助器吗?

谢谢, 罗伯特

2 个答案:

答案 0 :(得分:2)

您也可以简单地创建视图并将其附加到文档中。 您不需要第二把手模板。

App.UserEditView = Ember.View.create({
    templateName: 'user-edit',
    userBinding: 'App.usersController.selectedUser',
    tagName: 'span',
    didInsertElement: function () {
        $('h1').html('Edit User');
        document.title = 'Edit User';
    },
    showUsersList: function(event) {
        App.usersController.showUsersList();
    }
}).append();

答案 1 :(得分:1)

我修剪了一些特定于应用的逻辑,但让你的行动助手在this fiddle中工作

<强>车把

<script type="text/x-handlebars" data-template-name="user-edit">
    <p><a href="#" {{action "showUsersList"}}>Back</a></p>
</script>

<script type="text/x-handlebars" >
  {{view App.UserEditView}}
</script>​

<强>的JavaScript

App = Ember.Application.create({});

App.UserEditView = Ember.View.extend({
    templateName: 'user-edit',
    tagName: 'span',
    showUsersList: function(event) {
        alert('hi');
    }
});​