【问题标题】:v-bind error:v-bind' is an undeclared prefixv-bind 错误:v-bind' 是一个未声明的前缀
【发布时间】:2017-06-12 01:40:05
【问题描述】:

我在 asp.net 中使用 Orckestra CMS(在 Composite 之前)和 Razor 模板并尝试使用 Vue 框架。

使用 {{option.text}} 时一切正常

<select class="form-control" id="myExample1">
     <option v-for="option in options">{{option.text}}</option>
</select>

但是当我插入 v-bind 属性时,页面就坏了:

<select class="form-control" id="myExample1">
     <option v-for="option in options" v-bind:value="option.value">{{option.text}}</option>
</select>

渲染页面失败并显示“错误:'v-bind'是一个未声明的前缀。”

【问题讨论】:

  • 我对 ASP.net 没有经验,但是您是否尝试使用更短的方式进行绑定? :value="option.value" ?
  • ASP.net?从不使用 ASP.net
  • @BelminBedak 我尝试也使用更短的方式,但我有这个:错误:名称不能以':'字符开头,十六进制值 0x3A。
  • @EzequielFdeil 欢迎来到Stack Overflow!请注意,系统已经有办法将问题标记为已解决,并且会在您接受答案时这样做。 (感谢您这样做!)

标签: html binding web vue.js composite


【解决方案1】:

也许为时已晚,但是对于那些搜索的人,我找到了很好的解决方案from here

格式正确的 XML 不能使用 :@ 的快捷方式来表示 v-bind:v-on:。在 XML 中,这些属性被解释为命名空间名称。

要在 XML(例如 XSLT 文件)中使用 v-bind:v-on: 语法,请添加 这些作为 XML 中的虚拟命名空间,例如

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:v-bind="https://vuejs.org/v2/api/#v-bind"
 xmlns:v-on="https://vuejs.org/v2/api/#v-on">

然后还将虚拟xmlns:v-bind 添加到&lt;html&gt; 元素 输出 - 否则定义将在任何地方重复。

【讨论】:

    【解决方案2】:

    v-bind 可以在没有: 的情况下绑定,如下所示:

    <option v-for="option in options" v-bind="{value: option.value}">{{option.text}}</option>
    

    等于

    <option v-for="option in options" v-bind:value="option.value">{{option.text}}</option>
    

    参见。 Vue.js#v-bind

    【讨论】:

      【解决方案3】:

      this fiddle shows 的 vuejs 不是问题。 Razor 模板引擎不知道命名空间 v-bind:,只有 : 是无效的 xml。 你需要告诉模板引擎 vuejs 的命名空间。这是 another stack overflow article 关于向 Razor 模板引擎添加自定义命名空间的内容。

      【讨论】:

      • 谢谢您的回答!现在,问题是:我在哪里找到了 Vuejs 的命名空间?我需要创建这个吗?
      • 我链接了另一个关于此的 SO 主题。我不太确定如何处理这种情况,因为我从未使用过 ASP.net/那个模板引擎。
      【解决方案4】:

      已解决:问题是 XHTML 验证,对标签、属性等非常严格。

      这个验证的排序方式是在&lt; ![CDATA[ "blablabla" ]]&gt;之间插入代码

      <select class="form-control" id="myExample1">
      <![CDATA[     
      <option v-for="option in options" v-bind:value="option.value">{{option.text}}</option>
        ]]>
      </select>
      

      【讨论】:

        猜你喜欢
        • 2019-05-31
        • 2018-11-23
        • 2018-05-15
        • 2017-07-04
        • 1970-01-01
        • 2018-12-20
        • 1970-01-01
        • 2016-06-10
        • 1970-01-01
        相关资源
        最近更新 更多