【问题标题】:Accessing JavaScript's this from WebSharper从 WebSharper 访问 JavaScript 的 this
【发布时间】:2013-05-08 09:59:27
【问题描述】:

我对如何从 WebSharper 客户端代码中找到如何访问 JavaScript this 关键字感到有点傻眼。

我尝试过这样的事情:

[<Inline "$this">]
let this() = X<obj>

但这会在生成的 js 代码中吐出 $this,它似乎没有引用正确的范围对象。

感觉我不应该写任何额外的代码,它应该是 API 的一部分。

谢谢

【问题讨论】:

  • 自然有更多的 F# 惯用方式来做我们需要的事情,并找到了如何去做。不过,知道如何做到这一点仍然很有用。
  • 回复于 FPish:fpish.net/topic/Some/0/76515
  • 是的,我明白这是一个荒谬的目标,并在 fpish 上回复。投票结束此问题。
  • 与其关闭问题,不如发布一个答案来解释为什么这不是一个好主意以及惯用的替代方案是什么。

标签: f# websharper


【解决方案1】:

所以总体思路是,使用 WebSharper 时,您很少需要像使用传统网站那样导航 DOM。

拥有丰富的组合器可以在客户端创建标记,再加上 RPC 调用的简便性,有利于使用 javascript 在客户端创建所有内容的模式。

I.E.您倾向于返回数据并反过来以交互方式生成标记,仅在需要创建书签位置和有用链接时才诉诸服务器端标记。

因此,您通常可以在创建 DOM 元素时保持对它们的引用,只需将它们绑定到一个变量以供以后使用。

在我的个人用例中,我想访问this,但后来意识到this 是对我创建它时持有的剑道网格的引用。因此我不需要使用它。

除此之外,这种性质的 F#-to-javascript 编译器还存在一些不那么明显的技术限制。由于我不完全理解它们,因此在这里详述它们感到不舒服,但请随时通过上面的 fpish.net 链接查看 Anton 的答案。

【讨论】:

    猜你喜欢
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 2021-07-06
    • 2012-12-14
    • 2017-01-12
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多