Ember.js EmberJS:没有任何东西处理这个动作
灰烬新手。使用2.3.0。对于现有的应用程序,我需要添加一个按钮来切换屏幕上的内容。根据现有的代码模式,我添加了以下两个文件 app/components/help.jsEmber.js EmberJS:没有任何东西处理这个动作,ember.js,Ember.js,灰烬新手。使用2.3.0。对于现有的应用程序,我需要添加一个按钮来切换屏幕上的内容。根据现有的代码模式,我添加了以下两个文件 app/components/help.js import Ember from 'ember'; export default Ember.Component.extend({ actions: { toggleHelp() { this.toggleProperty('isShowingHelp'); }
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
toggleHelp() {
this.toggleProperty('isShowingHelp');
}
}
});
<div class="help">
<a href="#" {{action "toggleHelp"}}>help</a>
</div>
{{#if this.isShowingHelp}}
<p>HELPHELPHELP</p>
{{/if}}
模板/组件/帮助.hbs
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
toggleHelp() {
this.toggleProperty('isShowingHelp');
}
}
});
<div class="help">
<a href="#" {{action "toggleHelp"}}>help</a>
</div>
{{#if this.isShowingHelp}}
<p>HELPHELPHELP</p>
{{/if}}
但是当我单击时,我得到了一个错误,“没有处理操作‘toggleHelp’。如果您处理了该操作,则该错误可能是由控制器中的操作处理程序返回true导致的,从而导致该操作冒泡。”
我检查了一下,发现这符合说明
我认为问题可能是因为我将其称为部分
,但其他选项(查看
,渲染
,出口
)似乎都不适用于我的有限情况
根据,我尝试了{{action”toggleHelp“target='component'}}
,但当我单击时,错误变成了“ember.debug.js:29112 Uncaught TypeError:无法读取未定义的属性'send'
我完全不知所措。。。有人能指出我遗漏了什么吗?谢谢
更新:
如果我将
toggleHelp
与其中一个.hbs文件一起复制到控制器中,则链接工作正常。但正确的方法肯定不能是将其放入多个控制器文件中?(当我试图在controllers/application.js中放入toggleHelp
,希望它能覆盖所有地方(?!),我又回到了原来的错误上。)你的问题确实是{{partial“components/help}
一般来说,您不应该使用partials。要调用组件,请使用{{component name}
但是,Ember 2.3中的组件名称中需要有一个-
。所以help
无效
将组件重命名为类似“我的帮助”。因此
app/components/my help.js
适用于您的js和templates/components/my help.hbs
。然后您只需执行{{my help}}
即可使用该组件。Argh。我曾经尝试过{{help}}
,但没有成功。在无数年的时间里,我永远不会明白连字符的含义。非常感谢。