开发者问题收集

未定义

2018-12-31
913

我正在尝试将 AngularJS 应用转换为 Vue JS。但是,我不断收到 js 错误,例如“Uncaught TypeError:无法设置未定义的属性‘isEditMode’”。

我在这里尝试做的是,当单击 vuetify 图标时,页面可编辑,从而调用函数并显示一些其他图标。我目前拥有的代码如下:

new Vue({
    el: '#app',
    data: {
        saveView: false,
        isPageEdit: false,
        saveFailed: false,
        isPageLocked: false,
        editFailed: false,
        timerMessage: false,
        boundData:
            {
                sections: {
                    isEditMode: null
                }
            }
    },

    methods:
        {
            setedit: function (isEditMode, sectionId) {
                this.boundData.sections[sectionId].isEditMode = isEditMode;
                validation(sectionId);

如何解决这个问题?

2个回答

您需要先将部分设为对象数组。然后您就可以像这样访问您的属性

像这样

sections: [
  {isEditMode: null},
  {isEditMode: true},
]

或者,如果您想保留当前拥有的数据结构,那么您可以直接访问 isEditMode,就像 this.boundData.sections.isEditMode

Omar Abdo
2018-12-31

您的数据结构与您尝试索引的方式不匹配。您已定义

`boundData.sections.isEditMode`

并且您正在尝试引用

`boundData.sections[sectionId].isEditMode`
Roy J
2018-12-31