【问题标题】:Does Blazor support something like AngularJS' attribute directives?Blazor 是否支持 AngularJS 的属性指令之类的东西?
【发布时间】:2023-03-14 07:33:01
【问题描述】:

在 AngularJS 中,可以创建可以在不同视图中重用的属性指令。

举个简单的例子:

<span makeRed>
    This is some text
</span>

makeRed 是一个属性指令,可以将任何元素的文本变为红色。

Blazor 可以做一些类似于可重用代码并以某种方式插入 html 元素的事情吗?怎么样?

更新: 也许它在 Blazor 中不被称为指令,所以不要挂断这个词。我在 Blazor 中寻找属性指令在 AngularJS 中的作用的目标。无论 Blazor 采用何种方式。

【问题讨论】:

  • 你找到关于这个的答案了吗?我也在寻找类似的东西,但我还没有找到。
  • 也许这个link 有帮助,看来你可以用新的DynamicComponent 达到预期的效果。

标签: blazor


【解决方案1】:

我认为你想要的是这样的:

<span style="@makeRed" >I have no style</span>

<RecipeSelector @bind-IsOpen="@dialogIsOpen"  @bind-Value="@recipe"></RecipeSelector>

@code
{
    private string makeRed = "background: red; color: yellow;";
}

makeRed 可以是一个固定的字符串,也可以是一个运行一些逻辑来决定它是红色还是现在的MakeRedIfNotLoggedIn() 等的函数。你也可以对 CSS 类做同样的事情,将特殊类应用于控件.

您可以拥有一个包含所有定义的“全局”类。

HTH

【讨论】:

  • AngularJS 指令非常强大。我的颜色示例似乎不是一个很好的示例,因为人们正在发布关于如何在 Blazor 中动态地使文本变为红色的答案(已删除)。这不是我问题的重点。 Angular 中的属性指令可以做更多的事情。自定义验证。他们可以访问同一范围内的其他元素。 ..等等
猜你喜欢
  • 1970-01-01
  • 2011-08-11
  • 2021-06-10
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
  • 2010-10-06
  • 1970-01-01
  • 2018-04-13
相关资源
最近更新 更多