可选的嵌套属性和v-model

时间:2015-12-15 18:43:56

标签: javascript vue.js

我有一个Vue组件,用于 创建新项目更新数据库中的现有项目。我正在将数据中的项初始化为空对象:

module.exports = {
    data: function() {
        return { item: {} };
    },
};

但是,我正在使用v-model将字段与item的嵌套属性相关联:

<input id="author" type="text" class="form-control" v-model="item.author">

这会生成警告:

[Vue warn]: Error when evaluating expression "item.author".

如果可能,我喜欢告诉Vue不要担心它是否无法评估此表达式。我喜欢以避免明确声明item的每个属性,只是让我的API填充它。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以取消所有Vue.js日志和警告,但不能取消特定警告。

Vue.config.silent = true

答案 1 :(得分:0)

如果你可以让你的API传递一个属性名称数组,那么可以在循环数组时使用$ set:

for (var i = 0; i < response.propertyNameListFromAPI.length; i++)
{
     this.item.$set(response.propertyNameListFromAPI[i], null );
}

如果您有现有的项目对象,则可以迭代其属性名称:

for (var propertyName in exampleItemObject )
{
     this.item.$set(propertyName, exampleItemObject[propertyName] );
}