我想在 DOM 元素上调用自定义方法
像这样 :
<div id="MyObject">
<!-- some elements -->
</div>
<script>
function doSomething() {
// do something with input DOM element
}
$("MyObject").doSomething();
</script>
Run Code Online (Sandbox Code Playgroud)
我怎样才能发展这个问题?是否有必要使用jQuery?
在我的网页中,我创建了简单的 php 脚本,该脚本在浏览器上仅将我的 IP 地址显示为网页中的简单文本。
因此,如果我在 PowerShell 中使用此命令:
$ip = Invoke-WebRequest https://www.mypage.com
$ip
Run Code Online (Sandbox Code Playgroud)
我得到这个结果:
PS C:\Users\user> $ip
193.60.50.55
Run Code Online (Sandbox Code Playgroud)
如果我检查变量类型: GetType().FullName 我得到:
PS C:\Users\user> $ip.GetType().FullName
System.String
Run Code Online (Sandbox Code Playgroud)
如果我尝试将它与相同的字符串进行比较
PS C:\Users\user> $ip = Invoke-WebRequest https://www.mypage.com
$ip2 = "193.60.50.55"
$ip -eq $ip2
Run Code Online (Sandbox Code Playgroud)
我得到结果“False”,我也尝试使用 -match 和 -like 但结果总是 false
任何想法出了什么问题
考虑这个类的安排 - 特别是神奇函数 __invoke:
class Barman {
public function __construct() {
// .. .constructor stuff - whatever
}
public function makeDrink() {
return "vodka martini, shaken";
}
}
class Bar {
private $arr_barmen = array();
public function __construct() {
$this->arr_barmen['john'] = new Barman();
}
public function __invoke($barman_id) {
echo "I have been invoked";
return $this->arr_barmen[$barman_id];
}
public function aBarFunc($param) {
return "yes it worked ," .$param;
}
}
class Foo {
public $myBar;
public function __construct() {
$this->myBar = new …Run Code Online (Sandbox Code Playgroud) 我正在使用 redux 进行反应并使用 cypress 进行测试,我能够使用 cy.window().its('store').invoke('getState').then((state) => {} 但是我如何访问组件的本地状态而不是应用程序商店?
我试过
cy.get('.simple-component').its('getState')
Run Code Online (Sandbox Code Playgroud)
或者
cy.get('.simple-component').invoke('getState')
Run Code Online (Sandbox Code Playgroud)
但赛普拉斯正在返回“赛普拉斯错误:重试超时:cy.invoke() 出错,因为属性:'getState' 在您的主题上不存在”并且在赛普拉斯控制台上(在 chrome 中)它正在发出:
Yielded:
<div class="simple-component" getstate="[object Object]"></div>
Run Code Online (Sandbox Code Playgroud)
这似乎是由 React 从 DOM 中删除方法造成的,所以我需要在 React 中而不是在 DOM 中访问它?
import React, { Component } from 'react';
class simpleComponent extends Component {
constructor(props) {
super(props)
this.state = {
sample: "hello"
}
}
// getState() just for testing on cypress
getState() {
return this.state
}
render(){
return <div className="simple-component" getState={this.getState()}></div>
}
}
Run Code Online (Sandbox Code Playgroud)
作为替代方案,我可以使用 window.store 在简单组件的末尾导出本地组件状态吗?
我正在使用此docker-compose.yml文件在 docker 容器内运行 localstack 。
version: '2.1'
services:
localstack:
image: localstack/localstack
ports:
- "4567-4597:4567-4597"
- "${PORT_WEB_UI-8080}:${PORT_WEB_UI-8080}"
environment:
- SERVICES=${SERVICES- }
- DEBUG=1
- DATA_DIR=${DATA_DIR- }
- PORT_WEB_UI=${PORT_WEB_UI- }
- LAMBDA_EXECUTOR=docker
- KINESIS_ERROR_PROBABILITY=${KINESIS_ERROR_PROBABILITY- }
- DOCKER_HOST=unix:///var/run/docker.sock
volumes:
- "${TMPDIR:-/tmp/localstack}:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
Run Code Online (Sandbox Code Playgroud)
要启动 localstack,我运行TMPDIR=/private$TMPDIR docker-compose up.
我创建了两个 lambda。当我运行时,aws lambda list-functions --endpoint-url http://localhost:4574 --region=us-east-1这是输出。
{
"Functions": [
{
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "qmDiumefhM0UutYv32By67cj24P/NuHIhKHgouPkDBs=",
"FunctionName": "handler",
"LastModified": "2019-08-08T17:56:58.277+0000",
"RevisionId": "ffea379b-4913-420b-9444-f1e5d51b5908",
"CodeSize": 5640253,
"FunctionArn": "arn:aws:lambda:us-east-1:000000000000:function:handler", …Run Code Online (Sandbox Code Playgroud) 编辑:为了澄清起见,这是在 Blazor 服务器应用程序中
我对 InvokeAsync 的正确用法和更新 UI 感到困惑。该文档有多种用法,但没有真正解释等待或不等待的原因。我也看到了一些相互矛盾的线索,但没有多少支持他们的推理。
使所有方法异步以等待 InvokeAsync(StateHasChanged) 似乎是错误的,我在某处读到引入 InvokeAsync 的原因是为了防止在任何地方都需要异步代码。但是在什么情况下我可能想要等待它?
等待:
非等待丢弃:
https://docs.microsoft.com/en-us/aspnet/core/blazor/components/rendering?view=aspnetcore-5.0
以下是我见过的一些不同用法的示例,如果有人可以解释或分享有关它们之间某些差异的信息的链接,那就太好了(谢谢!)
public void IncrementCounter()
{
_counter++;
InvokeAsync(StateHasChanged);
}
Run Code Online (Sandbox Code Playgroud)
public void IncrementCounter()
{
InvokeAsync(() =>
{
_counter++;
StateHasChanged);
}
}
Run Code Online (Sandbox Code Playgroud)
public async Task IncrementCounter()
{
_counter++;
await InvokeAsync(StateHasChanged);
}
Run Code Online (Sandbox Code Playgroud)
public async Task IncrementCounter()
{
await InvokeAsync(() =>
{
_counter++;
StateHasChanged();
});
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试用C#进行跨线程调用.
每当我从一个从线程B调用的静态方法调用在线程A的上下文中创建的对象的方法时,该方法总是在线程B中运行.我不希望这样,我希望它在与线程相同的线程上运行我正在调用其方法的对象.
Invoke适用于UI调用,我读过很多文章和SO答案,涉及不同的交叉线程Forms/WPF调用方式.无论我尝试什么(事件处理,委托等)线程A的对象的方法将始终在线程B中运行,如果它由线程B调用.
我应该在图书馆的哪个部分来解决这个问题?如果相关,则线程B当前"旋转",从网络端口读取并偶尔通过在线程A中创建并使用ParameterizedThreadStart传入的委托调用线程A的对象方法.
我不打算改变范例,只是从一个线程(线程B)向另一个线程(线程A)发送消息(调用方法的请求).
编辑:
我的问题是"我应该在图书馆的哪个部分来解决这个问题?" 答案似乎是没有.如果我想清楚地描述消费和民意调查,我将不得不编写自己的代码来处理这个问题.
我遇到了第三方代码,它使用invoke来更新控件,但是调用是在一个锁定语句中,例如
lock (mi)
{
this.Invoke(mi);
}
Run Code Online (Sandbox Code Playgroud)
其中mi是System.Windows.Forms.MethodInvoker mi.
调用的方法只是更新一个窗口控件(列表框),并在创建用户控件时进行初始化,并且永远不会更改.
所以有两个问题
我有一个webservice控制器,它具有公共静态属性,这是webservices.我使用反射来调用这些web服务上的方法.
当所有webservice属性都是静态的时,根本没有问题.这很适合使用反射调用webservicecontroller中的方法:
Type wsControllerType = typeof(wsController);
PropertyInfo WebserviceProperty = wsControllerType.GetProperty(wsName, Some bindingflags);
MethodInfo method = WebserviceProperty.PropertyType.GetMethod(methodname);
method.Invoke(WebserviceProperty.GetValue(null, null), parameters);
Run Code Online (Sandbox Code Playgroud)
webservicecontroller将转换为单例,因此将删除静态Web服务属性.
当我尝试通过反射调用方法时,我在最后一部分得到了一个TargetException(WebserviceController.GetValue(null,null).
我尝试过多种方法,但无法让它发挥作用.我想我错过了一些简单的事情......谁可以提供帮助?
大家好,我将我的一个项目从Windowsforms切换到WPF。到目前为止,我使用这段代码来调用来自另一个线程的数据的GUI对象:
this.Invoke(new Action<NewDiagPacketArrivedEventArgs>(DoSomething), e);
Run Code Online (Sandbox Code Playgroud)
我如何在WPF中做同样的事情?我发现了一些有关使用调度程序的帖子,但是我无法使它正常工作。我想有一个简单的解决方案。如果您知道有关此主题的任何指南,将不胜感激。
谢谢
invoke ×10
c# ×4
async-await ×1
asynchronous ×1
aws-lambda ×1
blazor ×1
chainability ×1
class ×1
compare ×1
cypress ×1
dom ×1
javascript ×1
jquery ×1
localstack ×1
methods ×1
php ×1
powershell ×1
reactjs ×1
redux ×1
reflection ×1
singleton ×1
state ×1
string ×1
webrequest ×1
winforms ×1
wpf ×1