gpt4 book ai didi

javascript - 我可以在 ember 中编写帮助程序以避免代码重复的地方

转载 作者:行者123 更新时间:2023-11-30 17:16:46 25 4
gpt4 key购买 nike

我有几行重复的代码

Ember.$(".close").trigger('点击');
window.parent.showRegister();

在:适配器 Controller 路由中。

编写帮助程序(函数或操作)并在不同位置执行它的最佳位置。

例如,我可以在controller中编写函数,但我不知道如何访问RESTAdapter中的controllers

最佳答案

您可以或不能从另一个访问某些抽象的主要原因是对软件复杂性的控制,试图将其保持在最低限度。有类似 SOLID 的原则, low coupling/high cohesion遵循这有助于我们维护复杂的软件系统,增加系统的可理解性并减少开发过程中出错的可能性。

Ember 遵循 MVC模式,因此我不建议 (1) 在 Controller /适配器/路由器中保留用于 DOM 操作的代码,以及 (2) 以这种方式耦合适配器、 Controller 和路由。我确定有一种方法可以将这段代码放在 View 或 Ember.App 类之外的模块中;或设置路由映射来处理这种情况。

如果不是这种情况,或者您需要一个简单直接的解决方案,您可以使用丑陋的魔术构造来访问 Ember 中任何地方的任何内容:

App.__container__.lookup('controller:controllerName'); // controllers
App.__container__.lookup('router:main'); // routes
App.__container__.lookup('store:main'); // store, adapters, serializers
Ember.View.views['emberViewId'] // objects are dying here occasionally

双下划线告诉我们这不是在应用程序中建立通信的推荐方式。 :)

关于javascript - 我可以在 ember 中编写帮助程序以避免代码重复的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25979171/

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