v-bind error:v-bind' is an undeclared prefix
v-bind error:v-bind' is an undeclared prefix
我正在 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>
渲染页面失败并显示"Error: 'v-bind' is an undeclared prefix."
作为this fiddle shows,vuejs 不是问题。 Razor 模板引擎不知道命名空间 v-bind:
,只有 :
无效 xml。
你需要把vuejs的命名空间告诉模板引擎。这里是 another stack overflow article 关于将自定义命名空间添加到 Razor 模板引擎。
已解决:问题是 XHTML 验证,对标签、属性等非常严格
排序验证的方法是在< ![CDATA[ "blablabla" ]]>
之间插入代码
<select class="form-control" id="myExample1">
<![CDATA[
<option v-for="option in options" v-bind:value="option.value">{{option.text}}</option>
]]>
</select>
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
也许为时已晚,但对于那些搜索的人,我找到了很好的解决方案from here:
Well-formed XML cannot use the :
and @
shortcuts for v-bind:
and
v-on:
. And in XML these attributes are interpreted as namespace names.
To use the v-bind:
and v-on:
syntax in XML (e.g. XSLT files), add
these as dummy namespaces in the XML, e.g.
<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">
Then also add the dummy xmlns:v-bind
to the <html>
element of the
output – otherwise the definitions will be repeated everywhere.
我正在 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>
渲染页面失败并显示"Error: 'v-bind' is an undeclared prefix."
作为this fiddle shows,vuejs 不是问题。 Razor 模板引擎不知道命名空间 v-bind:
,只有 :
无效 xml。
你需要把vuejs的命名空间告诉模板引擎。这里是 another stack overflow article 关于将自定义命名空间添加到 Razor 模板引擎。
已解决:问题是 XHTML 验证,对标签、属性等非常严格
排序验证的方法是在< ![CDATA[ "blablabla" ]]>
<select class="form-control" id="myExample1">
<![CDATA[
<option v-for="option in options" v-bind:value="option.value">{{option.text}}</option>
]]>
</select>
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
也许为时已晚,但对于那些搜索的人,我找到了很好的解决方案from here:
Well-formed XML cannot use the
:
and@
shortcuts forv-bind:
andv-on:
. And in XML these attributes are interpreted as namespace names.To use the
v-bind:
andv-on:
syntax in XML (e.g. XSLT files), add these as dummy namespaces in the XML, e.g.<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">
Then also add the dummy
xmlns:v-bind
to the<html>
element of the output – otherwise the definitions will be repeated everywhere.