小编ogr*_*ogr的帖子

如何从 javascript 与 liveview 正确通信

我正在尝试在 Javascript 事件触发后使用 Javascript 更新 Liveview。Liveview 必须显示一个<div>元素,其中包含从 Javascript 发送的一些值。

我的问题是:我应该如何将这些值从 Javascript 传递到 Liveview?

我可能还需要 Liveview 在 Javascript 中发送的值。再说一遍:我应该如何将这些值从 Liveview 传递到 Javascript?

有一个用 Javascript 创建的 Livesocket 用于实时查看,但我看不出有什么方法可以从那里获取或设置分配值。在某些时候,从 Liveview 传递值或向 Liveview 传递值的唯一方法似乎是通过 DOM。例如:

<div id="lv-data" phx-hook="JavascriptHook"></div>
Run Code Online (Sandbox Code Playgroud)
let hooks = {};
hooks.JavascriptHook = {
  mounted(){

    this.el.addEventListener("jsEvent", (e) => 
      this.pushEvent("jsEventToPhx", e.data, (reply, ref) => 
        console.log("not sure what to do here")));

    this.handleEvent("phxEventToJS", (payload) => console.log("data received: " + payload));
  }
}
Run Code Online (Sandbox Code Playgroud)

必须将 DOM 与虚拟对象一起使用来<div>进行纯数据交换,这感觉很奇怪......

javascript elixir phoenix-framework phoenix-live-view

5
推荐指数
1
解决办法
4309
查看次数

访问每个单独标识符的最新行的正确方法?

core_message在 Postgres 中有一个表,有数百万行看起来像这样(简化):

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?    Colonne     ?           Type           ? Collationnement ? NULL-able ?                Par défaut                ?
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? id             ? integer                  ?                 ? not null  ? nextval('core_message_id_seq'::regclass) ?
? mmsi           ? integer                  ?                 ? not null  ?                                          ?
? time           ? timestamp with time zone ?                 ? not null  ?                                          ?
? point          ? geography(Point,4326)    ?                 ?           ?                                          ?
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Index:
    "core_message_pkey" PRIMARY KEY, btree (id)
    "core_message_uniq_mmsi_time" UNIQUE CONSTRAINT, btree (mmsi, "time")
    "core_messag_mmsi_b36d69_idx" btree (mmsi, "time" …
Run Code Online (Sandbox Code Playgroud)

sql postgresql indexing query-optimization greatest-n-per-group

4
推荐指数
2
解决办法
688
查看次数

flake8:忽略整个项目中双下划线“__”的 F841 未使用变量

我使用双下划线__作为转储变量而不是_,如下所示:

needed_value, __ = do_stuff()
use_value(needed_value)
Run Code Online (Sandbox Code Playgroud)

然而,flake8 抱怨,因为它认为我没有使用这个变量。确实如此,但这是故意的。

对于这个特定的用例,有什么方法可以让 flake8 保持沉默吗?

A#noqa是可能的,但我想要一个在整个项目上执行此操作的选项

python flake8

4
推荐指数
1
解决办法
3459
查看次数

使用局部变量的 for 循环中的函数定义

我在这里不知所措。我正在尝试在 for 循环内定义一个函数。该函数使用循环内定义的变量,看起来类似:

myFuns = []
for i in range(10):
    j = i + 4
    def fun(): print(j)
    myFuns += [fun]
Run Code Online (Sandbox Code Playgroud)

在此循环结束时,myFuns 中的函数有所不同,但它们执行相同的操作,显然,这不是传递给 fun() 的新变量 j,而是 j 的引用。

我很高兴知道如何传递 j 的值而不仅仅是引用。

我不知道在循环中创建的变量可能比循环寿命更长,所以这对我来说是一个新领域......

python

3
推荐指数
1
解决办法
4362
查看次数

如何根据父属性的条件生成子工厂

我有一个这样的工厂:

class PayInFactory(factory.DjangoModelFactory):
    class Meta:
        model = PayIn
  
    @factory.lazy_attribute
    def card(self):
        if self.booking_payment and self.booking_payment.payment_type in [bkg_cts.PAYMENT_CARD, bkg_cts.PAYMENT_CARD_2X]:
            factory.SubFactory(
                CardFactory,
                user=self.user,
            )
Run Code Online (Sandbox Code Playgroud)

card仅当该booking_payment字段具有payment_type以下值时,我才尝试生成该字段[bkg_cts.PAYMENT_CARD, bkg_cts.PAYMENT_CARD_2X]

代码进入该语句,但生成后卡字段为空。

我怎样才能正确地做到这一点?允许SubFactory进入吗lazy_attribute

如果可能的话,我希望能够从 PayInFactory 修改卡字段,如下所示:

>>> PayInFactory(card__user=some_user)
Run Code Online (Sandbox Code Playgroud)

PostGeneration不会这样做,因为我需要Card在调用创建之前使其可用。我覆盖了_create,它可能会使用该卡(如果可用)。

谢谢 !

factory-boy

1
推荐指数
1
解决办法
1166
查看次数