gpt4 book ai didi

javascript - Ember.js - 打开模式操作不会从组件中冒出

转载 作者:行者123 更新时间:2023-12-03 12:31:09 25 4
gpt4 key购买 nike

我关注了 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com