加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

我怎样才能在Elm中获得window.location.href?

发布时间:2020-12-14 01:35:47 所属栏目:Windows 来源:网络整理
导读:我有一个index.html,其中包含我的Elm应用程序. Elm应用程序使用各种GET到由服务于index.html的服务器所服务的API. 而不是硬编码我的榆树代码中的URL用于GET,例如: url = "http://localhost:8080/api/tasks" 是否有一个函数返回window.location.href的值?
我有一个index.html,其中包含我的Elm应用程序. Elm应用程序使用各种GET到由服务于index.html的服务器所服务的API.

而不是硬编码我的榆树代码中的URL用于GET,例如:

url =
    "http://localhost:8080/api/tasks"

是否有一个函数返回window.location.href的值?

我想做点什么:

url =
    getHref() ++ "/api/tasks"

这样,如果我将服务器移动到其他地方,我将不需要更新我的Elm代码中的所有URL.

解决方法

有一个 elm-history包,其中包含location函数,但它已被弃用,0.18版本不存在.

然后,您可能希望使用elm-navigation包并在模型中明确存储当前位置.

请看一下this example.带导航的程序可以通过以下方式创建:

Navigation.program UrlChange
    { init = init,view = view,update = update,subscriptions = (_ -> Sub.none)
    }

这里的UrlChange是一种消息,它会在每个URL更改时触发,因此您可以处理它并设置当前位置:

update : Msg -> Model -> ( Model,Cmd Msg )
update msg model =
    case msg of
        UrlChange location ->
            ( { model | location = location },Cmd.none
            )

然后在模型可访问的任何地方纯粹获取location.href.

在提供的应用程序中,这个地方是view:viewLocation model.location

在您的应用程序中,例如,它是这样的:

url model =
    model.location.href ++ "/api/tasks"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读