我正在尝试在 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>进行纯数据交换,这感觉很奇怪......
我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
我使用双下划线__作为转储变量而不是_,如下所示:
needed_value, __ = do_stuff()
use_value(needed_value)
Run Code Online (Sandbox Code Playgroud)
然而,flake8 抱怨,因为它认为我没有使用这个变量。确实如此,但这是故意的。
对于这个特定的用例,有什么方法可以让 flake8 保持沉默吗?
A#noqa是可能的,但我想要一个在整个项目上执行此操作的选项
我在这里不知所措。我正在尝试在 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 的值而不仅仅是引用。
我不知道在循环中创建的变量可能比循环寿命更长,所以这对我来说是一个新领域......
我有一个这样的工厂:
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,它可能会使用该卡(如果可用)。
谢谢 !