在 IHP 的帮助文件中正确导入

Getting imports right in Helper files in IHP

我正在尝试将我的一些视图和控制器逻辑集中到 Application.Helper.ControllerApplication.Helper.View.

中各自的帮助程序文件中的帮助程序中

我发现我无法访问我有权访问的包,例如在我的控制器文件中。例如 Data.Text 和许多其他人。当我什至无法访问管道操作员时,我不再尝试全部导入它们。

View.hs 帮助文件相同,无法访问 hsx 语法。

有没有简单的方法可以解决这个问题?你如何解决这个问题?必须在此处手动导入吗?

我觉得在 Web/Controller 文件夹中创建 Helper 文件似乎更简单,因为该文件夹中的模块似乎可以毫无问题地执行正确的自动导入。

我的 Controller.hs 文件现在的样子,不支持像 Data.Text 和管道运算符这样的东西:

module Application.Helper.Controller (
    module IHP.LoginSupport.Helper.Controller
) where

-- Here you can add functions which are available in all your controllers

import IHP.LoginSupport.Helper.Controller
import Generated.Types


type instance CurrentUserRecord = User

和不支持hsx语法的View.hs:

module Application.Helper.View (
    -- To use the built in login:
    module IHP.LoginSupport.Helper.View
) where

-- Here you can add functions which are available in all your views

-- To use the built in login:
import IHP.LoginSupport.Helper.View

Application.Helper.Controller 中你需要导入 IHP.ControllerPrelude,像这样:

module Application.Helper.Controller (
    module IHP.LoginSupport.Helper.Controller
) where

-- Here you can add functions which are available in all your controllers

import IHP.LoginSupport.Helper.Controller
import Generated.Types
import IHP.ControllerPrelude


type instance CurrentUserRecord = User

Application.Helper.View 中你需要导入 IHP.ViewPrelude,像这样:

module Application.Helper.View (
    -- To use the built in login:
    module IHP.LoginSupport.Helper.View
) where

-- Here you can add functions which are available in all your views

-- To use the built in login:
import IHP.LoginSupport.Helper.View
import IHP.ViewPrelude

这应该添加到 IHP 项目模板中。