我正在深入挖掘榆树,偶然发现以下问题:
现在有人告诉我每个机器人都是由绝地武士拥有的(不知道那是不是真的)。所以我想在机器人模块中添加一个选择框 - 所以我可以将Droid分配给Jedi。 绝地武士可以从Jedis模型中获取。
我的第一个问题是:哦,很好,我只是导入机器人模块中的主模块并尝试提取我的jedis。 但这不起作用,因为模块依赖性的循环性。
接下来我想:我在机器人模型中导入jedi模型并使用它来增强我的机器人模型 - 所以我可以将我的jedis放入“droid-owners”的选择框中。但这也不起作用。当我更新jedis列表时,我的机器人模块中没有任何效果(这是逻辑,因为jedis生成的消息向上弹出到main。主要识别它们并更新主模块。但机器人模型永远不会识别更新jedis模块)。
所以我想我必须了解一些关于elm架构的基础知识。我想我打破了整个榆树建筑。
任何人都可以解释如何正确实现这一点 - 我认为在开始开发更大的应用程序之前,这是一个需要理解的基本问题。
这是截图。您可以在每个组件下面看到那些模型作为字符串
会欣赏一些评论或提示或在哪里阅读更多关于......谢谢: - )
更新
我在要点中包含了所有三个文件: https://gist.github.com/marschro/7584216d5bdfed077b26a9d32c5b5cf6
答案 0 :(得分:0)
将model.jedis传递给Main.view中的Droids.view。您必须修改Droids.view以接受List Jedi的其他参数。关于核心Elm功能的文档可能会令人困惑。它们都有默认签名,即
view : Model -> Html Msg
但这只是最基本的签名。对于此示例,将其修改为
view : List Jedi -> Model -> Html Msg
现在您拥有最新的Jedis列表 至于模块参考,你可以做
import Jedi exposing (Jedi)
来自您的Droid模块