VueJS - 如何将指令应用于所有匹配的标签?

VueJS - How to apply directives to all matching tags?

我想以编程方式将指令应用于所有 input 标记。两个原因是:

  1. 我不想通过我的应用中的所有输入来添加指令
  2. 如果我想在以后更改针对所有输入的指令,它就在一个地方。

这可能吗?我已经查看了 docs,但他们似乎没有提到以任何其他方式应用它,只是将标签直接应用于元素。

我现在的代码是这样的:

<input type="text" class="form-control input-sm" id="price" v-model="model.doc.price" v-floating-label>

您可以像这样将该指令绑定到条件

<input type="text" 
       class="form-control input-sm" 
       id="price" 
       v-model="model.doc.price" 
       :v-floating-label=(condition)>

如果 condition == truev-model-float 指令将应用于您的输入。

更新 1:从评论来看,实现仍然是相同的,只是您从一个地方控制条件。这样,您以后只需将该条件设置为 false 即可删除该指令。

根据尤文:

Vue.js compilation happens when you instantiate/mount the root instance.

https://github.com/vuejs/Discussion/issues/77#issuecomment-60339440

我认为您尝试做的事情不明智:搜索和替换,在许多文本编辑器或 IDE 中开箱即用,对于您解释的两个原因非常有帮助。

我好像脑死亡了。我只需要一个 input 组件 。然后我可以在那里更改我需要的内容,它会在输入组件被使用的任何地方更新,而不是使用标准 html input 标签,我将使用我的组件。

漫长的一天...

我自己回答了这个问题,而不是删除它,以防将来其他人有同样的脑死亡时刻;)