如何在 Blazor 中完成绑定后 运行 其他操作?
How to run additional actions after binding completes in Blazor?
我正在尝试了解如何在绑定完成后运行执行操作
例如
<input type="text" @bind="@Model.Value" />
<h2>@Value2</h2>
@code
{
void SetNewValue()
{
Value2 = $"New value {this.Model.Value} added on {DateTime.Now}";
}
string Value2 {get;set;}
}
这只是一个简单的例子。我不能使用 onchange,因为它不能与绑定一起使用。我尝试使用 onkeyup 但它是在绑定完成之前执行的。 Blazor 没有处理焦点丢失的选项,所以我真的不知道如何完成这项工作。
我试过使用 onchange,但它在失去焦点后触发。如果你想在字母变化时调用函数,你可以使用oninput。
<input @oninput="OnValueChanged" value="@Value" />
Value: <div>@Value</div>
@code {
[Parameter]
public string Value { get; set; }
[Parameter]
public EventCallback<string> ValueChanged { get; set; }
private Task OnValueChanged(ChangeEventArgs e)
{
Value = e.Value.ToString();
return ValueChanged.InvokeAsync(Value);
}
}
@page "/"
<input type="text" value="@model.Value" @onchange="@((args) => { model.Value =
args.Value.ToString(); SetNewValue(); })" />
<h2>@Value2</h2>
@code
{
private Model model = new Model();
void SetNewValue()
{
Value2 = $"New value {this.model.Value} added on {DateTime.Now}";
}
string Value2 { get; set; }
public class Model
{
public string Value { get; set; }
}
}
我正在尝试了解如何在绑定完成后运行执行操作
例如
<input type="text" @bind="@Model.Value" />
<h2>@Value2</h2>
@code
{
void SetNewValue()
{
Value2 = $"New value {this.Model.Value} added on {DateTime.Now}";
}
string Value2 {get;set;}
}
这只是一个简单的例子。我不能使用 onchange,因为它不能与绑定一起使用。我尝试使用 onkeyup 但它是在绑定完成之前执行的。 Blazor 没有处理焦点丢失的选项,所以我真的不知道如何完成这项工作。
我试过使用 onchange,但它在失去焦点后触发。如果你想在字母变化时调用函数,你可以使用oninput。
<input @oninput="OnValueChanged" value="@Value" />
Value: <div>@Value</div>
@code {
[Parameter]
public string Value { get; set; }
[Parameter]
public EventCallback<string> ValueChanged { get; set; }
private Task OnValueChanged(ChangeEventArgs e)
{
Value = e.Value.ToString();
return ValueChanged.InvokeAsync(Value);
}
}
@page "/"
<input type="text" value="@model.Value" @onchange="@((args) => { model.Value =
args.Value.ToString(); SetNewValue(); })" />
<h2>@Value2</h2>
@code
{
private Model model = new Model();
void SetNewValue()
{
Value2 = $"New value {this.model.Value} added on {DateTime.Now}";
}
string Value2 { get; set; }
public class Model
{
public string Value { get; set; }
}
}