onclick에 대한 Blazor 조건부 if 문
Sep 04 2020
IsActive bool이 true이면 onclick 속성이 있어야하는 범위가 있습니다. 그렇지 않으면 스팬에 onclick 속성이 없어야합니다.
예 :
@if (IsActive == true)
{
<span @onclick="@(e => Go.DoSomething("please"))">
@s.DisplayText
</span>
}
else
{
<span>
@s.DisplayText
</span>
}
삼항 연산자를 사용하여 반복되는 코드를 피할 수있는 방법이 없습니까? 예 :
@(IsActive == true ? "add onclick method somehow?" : "")
답변
4 GaryChan Sep 05 2020 at 13:13
다음을 수행 할 수 있습니다.
<span @onclick="@(e => { if (IsActive) Go.DoSomething("please");})">
@s
</span>
람다 식 난 당신이 정말 찾고있는 생각이다.
9 Umair Sep 04 2020 at 17:02
조건을 추가하는 더 좋은 방법 IsActive == true은 Go.DoSomething메서드에 있습니다. 그러나 이상적으로는 버튼에 disabled속성을 추가 할 수 있기 때문에 클릭 가능한 경우 버튼을 사용했을 것 입니다. 귀하의 경우에는 onclick메서드 내부에 조건을 추가 할 수 있습니다 .
버튼에 대한 팁입니다. 다음과 같이 해당 속성 내에 C # 부울 속성을 추가하면됩니다.
<button disabled="@IsActive">Save</button>
2 devbf Sep 04 2020 at 18:36
비슷한 문제가있는 사람들을 위해 무언가를 추가하고 싶습니다.
단일 범위보다 더 많은 HTML 코드가 있고 if-else- 문으로 인해 두 번 필요한 경우 자체 Blazor 구성 요소 (예 : MyComponent.razor)를 만들고 구성 요소 매개 변수를 사용합니다. 이렇게하면 if-else-statement에 중복 코드가 많지 않습니다.