【发布时间】:2018-06-18 15:56:36
【问题描述】:
我有一个场景,我希望执行的表达式被动态加载到组件中。我无法将表达式设置为 v-if,因为它是文字字符串,而不是实际的绑定表达式。
我看过使用 vm.$watch 但是表达式只能是点符号路径,而不是单个 javascript 表达式。
vm.$watch用法:观察 Vue 实例上的表达式或计算函数的变化。使用新值和旧值调用回调。该表达式只接受简单的点分隔路径。对于更复杂的表达式,请改用函数。
我可以使用 vuejs 的某些部分来实现这一点吗?我假设v-if 指令等的绑定表达式最终是在给定上下文中被解析和评估的字符串,只是这些函数是否可用于组件?
希望下面的这个例子更全面地展示了我想要实现的目标:
<template>
<div>
<div v-if="expression"></div>
</div>
</template>
<script>
export default {
name: 'mycomponent'
data: function() {
var1: 5,
var2: 7,
expression: null
},
created: function() {
this.$http.get('...').then((response) => {
// Sample response:
// {
// 'expression' : 'var1 > var2'
// }
// TODO: Not this!!
this.expression= response.expression;
});
}
}
</script>
【问题讨论】: