Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js EmberJS:没有任何东西处理这个动作_Ember.js - Fatal编程技术网

Ember.js EmberJS:没有任何东西处理这个动作

Ember.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'); }

灰烬新手。使用2.3.0。对于现有的应用程序,我需要添加一个按钮来切换屏幕上的内容。根据现有的代码模式,我添加了以下两个文件

app/components/help.js

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}}
,但没有成功。在无数年的时间里,我永远不会明白连字符的含义。非常感谢。