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



我想以编程方式将指令应用于所有input标签。造成这种情况的两个原因是:

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

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

我当前的代码是这样的:

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

我似乎有一个脑死亡的时刻。我只需要一个input组件。然后我可以在那里更改我需要的内容,它将在使用输入组件的所有位置更新,而不是使用标准的 html input 标签,我将使用我的组件。

漫长的一天...

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

根据Evan You的说法:

Vue.js编译发生在你实例化/挂载根实例时。

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

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

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

<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 来删除该指令。

最新更新