gpt4 book ai didi

javascript - 模板内的操作尝试在 View 中查找函数,而不是使用路由定义

转载 作者:行者123 更新时间:2023-12-02 19:20:38 24 4
gpt4 key购买 nike

我正在尝试按照 http://emberjs.com/guides/outlets/#toc_transitions-and-urls 上的指南让 ember 路由工作。我使用的是 1.0.pre

但是,我在模板栏中定义操作时遇到了困难。

当我尝试从模板栏中单击“阅读文章”时,会发生错误,它试图在我的 View 中查找 showPost 函数,而不是使用路由器,我应该使用什么目标作为目标?我是否正确设置了上下文?

错误:断言失败:目标<(Ember.View的子类):ember337>没有showPost操作

编辑:有错误的项目可在 https://github.com/newtonianb/todomvc/tree/master/dependency-examples/emberjs_require

最佳答案

当您的 View 没有 Controller 和路由器来发送操作时,就会发生这种情况。您可以通过访问路由器的 controllercontroller.target 来验证您的 View Controller 和路由器是否存在。

事实上,查看您的代码,我不希望路由器存在,因为您正在手动创建 Controller 。 Controller 需要了解路由器,以便可以向其发送事件。

controller.connectOutlet({
viewClass: PostsView,
controller: PostsController.create(), // no target!
context: context
})

默认情况下,当您的应用程序初始化时,Ember 会为您将所有这些连接在一起。这是您的 Controller 被实例化的地方。

事实上,将上面的内容更改为类似的内容应该可以解决您的问题。

controller.connectOutlet({
viewClass: PostsView,
controller: router.get('postsController'), // this guy has target
context: context
})

如果这仍然不起作用,您可以发布一个 jsfiddle 以便我们一起编辑它。

关于javascript - 模板内的操作尝试在 View 中查找函数,而不是使用路由定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12565660/

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