标签: callback

Angular无法在组件使用Material Autocomplete的displayWith组件方法中访问“this”

在最新版本的 Angular 中,我使用了以下 HTML:

    <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn">
    <mat-option *ngFor="let entity of entityNames" [value]="entity.EntityId">
     {{ entity.EntityName }}
    </mat-option>
Run Code Online (Sandbox Code Playgroud)

在我的常规角度分量中,该displayFn方法如下所示:

displayFn(entityId: number): string {
  const name = (entityId && entityId > 0) ? this.entityNames?.find(entityName => entityName.EntityId === entityId).EntityName : '';
  return name;
}
Run Code Online (Sandbox Code Playgroud)

问题是,我的组件“这个”。不可用,对其成员的任何访问都会失败。

autocomplete callback this angular-material angular

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

加载页面时 Plotly Dash URL 路径名回调不会触发

我正在尝试使用 url 回调构建多页面 Dash 应用程序。我的应用程序名为 dash_apps.py 如下所示:

\n
from flask import Flask\nfrom flask import request\nimport dash\nimport dash_core_components as dcc\nimport dash_html_components as html\nfrom dash.dependencies import Input, Output, State\n\nserver = Flask(__name__)\napp = dash.Dash(\n    __name__,\n    server = server,\n    serve_locally = False,\n    requests_pathname_prefix = "/plotary/dash/",\n)\n\napp.layout = html.Div([\n        html.Div([\n        html.A([\n            html.Div(id="logo")\n        ],href=\'https://man-es.com\'),\n        html.Div([\n            html.H1(\'Keine Auswertung ausgew\xc3\xa4hlt. \')\n        ],id="description"),\n    ],\n    id="navbar")]\n)\n\n@app.callback(Output(\'description\', \'children\'),\n              [Input(\'url\', \'pathname\')])\ndef display_page(pathname):\n    return html.Div([\n        html.H1(\'Auswertung Nr {}\'.format(pathname))\n    ])\n\n@server.route(\'/plotary/dash/<int:report_id>\')\ndef create_report(report_id):\n    return app\n\nif __name__ == \'__main__\':\n    app.run_server(debug=True)\n
Run Code Online (Sandbox Code Playgroud)\n

并通过 wsgi.py 调用,如下所示:

\n
from dash_apps import …
Run Code Online (Sandbox Code Playgroud)

python callback flask plotly-dash

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

Kotlin 协程。Kotlin Flow 和共享首选项。waitClose 从未被调用

我很乐意观察共同偏好的变化。以下是我使用 Kotlin Flow 执行此操作的方法:

数据源。

interface DataSource {

    fun bestTime(): Flow<Long>

    fun setBestTime(time: Long)
}

class LocalDataSource @Inject constructor(
    @ActivityContext context: Context
) : DataSource {

    private val preferences = context.getSharedPreferences(PREFS_FILE_NAME, Context.MODE_PRIVATE)

    @ExperimentalCoroutinesApi
    override fun bestTime() = callbackFlow {
        trySendBlocking(preferences, PREF_KEY_BEST_TIME)
        val listener = SharedPreferences.OnSharedPreferenceChangeListener { sharedPreferences, key ->
            if (key == PREF_KEY_BEST_TIME) {
                trySendBlocking(sharedPreferences, key)
            }
        }
        preferences.registerOnSharedPreferenceChangeListener(listener)
        awaitClose { // NEVER CALLED
            preferences.unregisterOnSharedPreferenceChangeListener(listener)
        }
    }

    @ExperimentalCoroutinesApi
    private fun ProducerScope<Long>.trySendBlocking(
        sharedPreferences: SharedPreferences,
        key: String?
    ) {
        trySendBlocking(sharedPreferences.getLong(key, 0L))
            .onSuccess …
Run Code Online (Sandbox Code Playgroud)

android callback kotlin kotlin-coroutines kotlin-flow

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

在 Rust 中实现回调系统时遇到问题

(完全公开,这是我的 reddit 帖子的转发)

首先,我想声明一下,我并不是一名开发人员,而是 Rust 的初学者。我有一个可能很微不足道的问题。

我正在致力于为定制 CPU 实现模拟器。我希望能够挂钩仿真(并稍后进行调试)。我希望为 CPU、挂钩系统和模拟器提供单独的包,并且希望我的 CPU 不知道挂钩系统的实现细节,反之亦然。但我在建模时遇到了问题。

现在,我有类似的东西:

// crate CPU
    pub struct Cpu {
        hooks: HashMap<VirtAddr, hook::Hook>,
    }

    impl Cpu {
        pub fn add_hook(&mut self, hook: hook::Hook) {
            self.hooks.insert(hook.addr(), hook);
        }

        pub fn step(&mut self) {
            hook::hook_before!();
        }
    }


// crate HOOK
    pub struct Hook {
        addr: VirtAddr,
        callback: Box<dyn FnMut(VirtAddr) -> Result<String>>
    }

    impl Hook {
        pub fn new(
            addr: VirtAddr,
            callback: impl FnMut(VirtAddr) -> Result<String> + 'static,
        ) …
Run Code Online (Sandbox Code Playgroud)

generics callback lifetime rust

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

使用 Electron 在单独的窗口/浏览器中进行 OAuth 登录

我正在开发一个连接到 AWS 后端的 Electron 应用程序,该应用程序处理用户的验证和创建。如果重要的话我会用 React 构建应用程序。

基本上后端流程是:

  • 导航至backend.com/oauth/login
  • 后端准备 OAuth 配置,重定向到 Discord.com 身份验证 url
  • 用户进行身份验证,backend.com/oauth/callback使用必要的信息重定向到以验证身份验证并创建用户

我已经让这部分工作了。但如果我在单独的浏览器窗口中打开backend.com/oauth/login,我如何知道身份验证是否成功?

我可以在打开的身份验证窗口中监听一些事件吗?也许让回调重定向到backend.com/login/successful身份验证是否完成或其他情况backend.com/login/failed。这感觉就像是一个黑客,但我在这里远远超出了我的专业知识。

authentication oauth callback electron

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

带数据的通用回调

关于这个主题已经有一个非常受欢迎的问题,但我不完全理解答案。

目标是:

我需要一个“函数指针”列表(读取 Vec)来修改存储在程序中其他位置的数据。我能想到的最简单的例子是按下按键时调用的回调。因此,当按下任意键时,传递给该对象的所有函数都将按某种顺序调用。

阅读答案后,我不清楚如何才能列出这样的列表。听起来我需要将回调的类型限制为已知的类型,否则我不知道如何创建它的数组。

我也不清楚如何存储数据指针/引用。

说我有

struct Processor<CB>
where
    CB: FnMut(),
{
    callback: CB,
}
Run Code Online (Sandbox Code Playgroud)

就像答案所暗示的那样,我无法制作处理器阵列,可以吗?因为每个处理器在技术上都是不同的类型,具体取决于通用实例。

events callback rust

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

ResizeObserver 仅在 Web 组件添加到 DOM 时触发,而不是在调整大小时触发

我已经创建了一个 Web 组件,并尝试将 a 添加ResizeObserver到该元素。

\n

ResizeObserver添加后,connectedCallback它似乎只在元素添加到 DOM 时触发一次,但在元素调整大小时不会再次触发。

\n

我希望ResizeObserver当组件被其父元素强制调整大小时,将被触发。我已经检查并观察了开发人员工具中的元素大小,它确实调整了大小。

\n

我还使用标准 HTML 元素(id:#foo)测试了相同的代码,并且回调有效。所以我只能假设问题与 Shadow DOM 有关。

\n

规范说:

\n
    \n
  1. 当观察元素被插入/从 DOM 中删除时,观察将会触发
  2. \n
  3. 当观看的元素显示设置为无时,观察将触发。
  4. \n
  5. 对于未替换的内联元素,不会触发观察。
  6. \n
  7. CSS 转换不会触发观察。
  8. \n
  9. 如果正在渲染 Element,并且 Element\xe2\x80\x99s 大小不为 0,0,则观察开始时将触发观察。
  10. \n
\n

我可以确认第一点发生了。

\n

我预计第五点应该会发生,但它从来没有发生过。如果检查元素,它的大小不是 0,0 并且会随页面调整大小。

\n

我已经浏览了 Web 组件的 MDN 文档和ResizeObserver许多其他网站,据我所知,我的一切都是正确的。

\n

这是代码的 JSFiddle:\n https://jsfiddle.net/h15e48fx/1/

\n

javascript resize callback web-component resize-observer

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

jQuery回调过早发生

在使用jQuery为IE 7中的按钮的click事件分配函数时,我遇到了问题.类似下面的东西在Opera中运行正常,但在IE中产生无限循环:

function updateIndputFields(index, id) {
   $("#reloadBtn").click(function(){ updateIndputFields(index, id) });
}
Run Code Online (Sandbox Code Playgroud)

据我了解,无限循环不会是这种情况下的预期行为.但我是jQuery的新手,所以也许我错过了一些东西.无论如何,我应该怎么做才能使reloadBtn按钮的click事件在IE中设置为'updateIndputFields(index,id)'?

javascript jquery internet-explorer callback

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

没有函数指针,什么是在Java中实现Callback的推荐方法 - 除了接口?

我有几个类想要相互传递一些信息,然后使用该信息(回调模式)稍后回调.

在我的应用程序中,此机制有两个目的:

  • 预定/延迟执行
  • 涉及消息的异步执行

我的对象基本上互相说"当你完成X时,给我回电话并告诉我用Z做Y(因为到那时我会忘记它)".X可能只是在等待正确的时间,但也与远程服务通信或调用本地功能.

现在,在Java中有函数指针(或等效函数),我会实现一些包含一个"Job"的类以及它需要的参数.例如,在PHP中,此结构必须存储类名,函数名和参数数组.在C中,它将是一个指向函数的指针,我必须使参数的数量和类型与所有调用相同.

在Java中,通常的方法是拥有一个由所有想要被回调的类实现的接口,如下所示:

public interface ICallable {
    public void call_me(Object data);
}
Run Code Online (Sandbox Code Playgroud)

现在这对我不起作用,因为

  • 要回调的对象可能有一组不同的方法来接听电话
  • 呼叫者不是决定应该拨打什么电话的人

也许我的问题是我正在尝试为各种回调设置一个通用的数据结构和调用程序,但原则上它似乎对我有意义.

在Java中处理这种情况有什么好的设计模式?

java design-patterns callback

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

WPF:动画完成后返回方法

参考我目前正在构建的这个编程游戏.

我有一个类库(DLL)将有一个方法Run,将由以下内容组成:

public class MyRobot : Robot 
{
    public void Run(} 
    {
        while (true) 
        {
           Ahead(200); //moves the bot 200pixels
           TurnLeft(90); //turns the bot by 90deg 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在那些方法(继承自Robot)中,系统将使用WPF(使用BeginAnimationDispatcherTimer)来为机器人设置动画.

现在,问题是我没有在完成当前方法之前返回(即,转到下一个方法)的方法,因为这将导致动画一起发生,并且在无限循环中(如一个以上),这尤其不好.


我的问题是,在完成动画之前阻止方法返回的最佳方法什么

我当前boolRobotclass(isActionRunning)中有一个标记为true动作开始运行时,然后更改为false动画回调(Completed如果使用则使用该事件BeginAnimation).

在每个方法结束时(在调用之后BeginAnimation),我放置了以下循环:

while (isActionRunning) 
{
    Thread.Sleep(200); //so that the thread sleeps for 200ms and then checks again if …
Run Code Online (Sandbox Code Playgroud)

wpf animation callback

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