作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我关注了 Ember.js 的 Using Modal Dialogs并将操作处理程序放入 ApplicationRoute
。这一切都很好,直到我尝试在组件模板中使用相同的操作,在这种情况下,它不会执行任何操作,控制台中会出现以下错误:Uncaught Error: Assertion Failed: The
目标for <appkit@component:user-info::ember451> (49.5) does not have a
发送method
.
Here's一个 JSBin 演示了我的问题。请注意索引模板中指定的操作如何调用模态,而组件内指定的操作则不会。 JSBin 的要点是:
索引模板
<!-- this creates the modal successfully -->
<button {{action "openModal" "modal-login"}}>open a modal (not in a component)</button>
<!-- this component has the same button as above in code, but clicking the button doesnt work -->
{{user-info}}
用户信息组件模板
<button {{action "openModal" "modal-login"}}>open a modal(in a component)</button>
我已经找到了解决这个问题的方法,但是它非常老套,并且向我的组件添加了很多代码。在组件声明中,我复制了“openModal”操作,并使其通过组件上的注册操作 like so 发送操作。 .
最佳答案
您需要将操作发送到路由器操作。像这样:
App.UserInfoComponent = Ember.Component.extend({
actions: {
openModal: function(modalName) {
console.log(modalName); this.sendAction('openModal',modalName);
}
}
});
这是一个带有工作解决方案的 jsbin: http://jsbin.com/fijujikape/1/edit?html,js,console,output
关于javascript - Ember.js - 打开模式操作不会从组件中冒出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23924786/
我是一名优秀的程序员,十分优秀!