ember.js中的操作帮助程序引发错误

ember.js中的操作帮助程序引发错误,ember.js,Ember.js,以下代码失败,并显示消息“uncaughttypeerror:objectdataember action=“4”没有方法“replace”-似乎Handlebar帮助程序获得了一个缺少所述方法的Handlebar SafeString 请注意,三重支撑动作{{{{action…}}}}似乎有效 <h1>Skills</h1> <script type="text/x-handlebars" data-template-name="skill-li

以下代码失败,并显示消息“uncaughttypeerror:objectdataember action=“4”没有方法“replace”-似乎Handlebar帮助程序获得了一个缺少所述方法的Handlebar SafeString

请注意,三重支撑动作{{{{action…}}}}似乎有效

    <h1>Skills</h1>

    <script type="text/x-handlebars" data-template-name="skill-list">
        <table class="datagrid" style="width: 100%">
            <thead>
            <tr>
                <td colspan="5" class="controls">
                    Search <input type="text" value="" class="search_field"/>
                </td>
            </tr>
            <tr>
                <th class="id_sort">ID</th>
                <th class="name_sort">Name</th>
                <th class="basis_sort">Basis</th>
                <th class="type_sort">Type </th>
                <th>&nbsp;</th>
            </tr>
            </thead>
            <tbody>
            {{#view SKILLS.skill_items }}

            {{#each skills }}
            <tr>
                <td>
                    {{ _id }}
                </td>
                <td>{{ name }}</td>
                <td>{{ basis }}</td>
                <td>{{ type }}</td>
                <td class="control">
                    <button class="edit"><span class="icon"></span> Edit</button>
                </td>
            </tr>
            {{/each }}

            {{/view }}
            </tbody>
            <tfoot>
            <tr>
                <th class="id_sort">ID</th>
                <th class="name_sort">Name</th>
                <th class="basis_sort">Basis</th>
                <th class="type_sort">Type </th>
                <th>&nbsp;</th>
            </tr>
            <tr>
                <td colspan="5" class="controls">

                    <button class="add" {{action "add_skill"}} >Add Skill
                    </button>
                </td>
            </tr>
            </tfoot>
        </table>
    </script>

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

    <script language="javascript">

        var SKILLS;

        $(function () {
            SKILLS = Ember.Application.create({

                Skill: Ember.Object.extend({
                    id: 0,
                    name: '',
                    basis: ''
                }),

                skills: [],

                add_skill: function(){

                }

            });

            SKILLS.skills = _.map([
                {name:"throwing", basis:"speed", type: 'skill', _id:0},
                {name:"spech", basis:"will", type: 'skill', _id:1}
            ], function(s){ return _.extend(new SKILLS.Skill(), s)});

            SKILLS.skill_items = Ember.View.extend({
                skillsBinding: 'SKILLS.skills'
            });

            SKILLS.skills_view = Ember.View.extend({
                templateName:'skill-list',
                add_skill: function(){
                    SKILLS.add_skill();
                }
            });

        })
    </script>
技能
搜寻
身份证件
名称
基础
类型
{{{#查看技能.技能项目}
{{{每项技能}
{{{u id}}
{{name}}
{{basis}}
{{type}}
编辑
{{/每个}}
{{/view}
身份证件
名称
基础
类型
增加技能
{{view SKILLS.SKILLS_view}
​
var技能;
$(函数(){
技能=Ember.Application.create({
技能:Ember.Object.extend({
id:0,
名称:“”,
依据:“”
}),
技能:[],
添加技能:函数(){
}
});
SKILLS.SKILLS=\u0.map([
{名称:“投掷”,基础:“速度”,类型:'skill',_id:0},
{name:“spech”,base:“will”,type:'skill',_id:1}
],函数{return uu.extend(new SKILLS.Skill(),s)});
SKILLS.skill\u items=Ember.View.extend({
技能提示:“技能,技能”
});
SKILLS.SKILLS\u view=Ember.view.extend({
模板名称:'skill-list',
添加技能:函数(){
技能。添加技能();
}
});
})

以下是您的代码的工作版本: 我清理了一些奇怪的代码(事实上,对我来说很奇怪,尤其是u.map()或u.extend()),删除了不必要的视图、尊重

但在某种程度上,它对我来说并不完全干净

技能
搜寻
身份证件
名称
基础
类型
{{{每个技能.技能}
{{id}
{{name}}
{{basis}}
{{type}}
编辑
{{/每个}}
身份证件
名称
基础
类型
增加技能
{{view Skills.SkillsView}
var技能;
$(函数(){
技能=Ember.Application.create({
技能:Ember.Object.extend({
id:0,
名称:“”,
依据:“”
}),
技能:[],
添加技能:函数(){
log(“添加新技能”);
}
});
技能。技能=[
{名称:“投掷”,基础:“速度”,类型:“技能”,id:0},
{name:“spech”,base:“will”,键入:'skill',id:1}
].map(函数{return Skills.Skill.create;});
Skills.SkillsView=Ember.View.extend({
模板名称:'skill-list',
添加技能:函数(){
技能。添加技能();
}
});
})

以下是您的代码的工作版本: 我清理了一些奇怪的代码(事实上,对我来说很奇怪,尤其是u.map()或u.extend()),删除了不必要的视图、尊重

但在某种程度上,它对我来说并不完全干净

技能
搜寻
身份证件
名称
基础
类型
{{{每个技能.技能}
{{id}
{{name}}
{{basis}}
{{type}}
编辑
{{/每个}}
身份证件
名称
基础
类型
增加技能
{{view Skills.SkillsView}
var技能;
$(函数(){
技能=Ember.Application.create({
技能:Ember.Object.extend({
id:0,
名称:“”,
依据:“”
}),
技能:[],
添加技能:函数(){
log(“添加新技能”);
}
});
技能。技能=[
{名称:“投掷”,基础:“速度”,类型:“技能”,id:0},
{name:“spech”,base:“will”,键入:'skill',id:1}
].map(函数{return Skills.Skill.create;});
Skills.SkillsView=Ember.View.extend({
模板名称:'skill-list',
添加技能:函数(){
技能。添加技能();
}
});
})

您使用的是什么版本的余烬?我已经复制/粘贴了代码,但是JSFIDLE似乎无法执行它。昨天晚上重写它太晚了。指向你@,在那里你可以找到EmberJS应用程序的JSFIDLE模板。你使用的是什么版本的Ember?你能辩诉吗