Javascript 未捕获类型错误:无法设置属性';iEdit模式';未定义的

Javascript 未捕获类型错误:无法设置属性';iEdit模式';未定义的,javascript,angularjs,vue.js,vuejs2,vuetify.js,Javascript,Angularjs,Vue.js,Vuejs2,Vuetify.js,我正在尝试将AngularJS应用程序转换为Vue JS。但是,我不断收到js错误,如“UncaughtTypeError:无法设置未定义的属性'isEditMode' 我在这里试图做的是在单击vuetify图标时使页面可编辑,该图标反过来调用函数并显示一些其他图标。我目前拥有的代码如下: new Vue({ el: '#app', data: { saveView: false, isPageEdit: false, saveFa

我正在尝试将AngularJS应用程序转换为Vue JS。但是,我不断收到js错误,如“UncaughtTypeError:无法设置未定义的属性'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);

如何解决这个问题?

您的数据结构与您尝试为其编制索引的方式不匹配。你已经定义了

`boundData.sections.isEditMode`
而你正试图引用

`boundData.sections[sectionId].isEditMode`

您的数据结构与您尝试对其进行索引的方式不匹配。你已经定义了

`boundData.sections.isEditMode`
而你正试图引用

`boundData.sections[sectionId].isEditMode`

首先,需要将节设置为对象数组。然后你可以像那样访问你的财产

像这样的

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

或者,如果您希望保留现有的数据结构,则可以直接访问isEditMode,如下所示。boundData.sections.isEditMode

您需要首先使sections成为一个对象数组。然后你可以像那样访问你的财产

像这样的

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

或者,如果您希望保留当前的数据结构,那么您可以直接访问isEditMode,如下所示。boundData.sections.isEditMode

谢谢,但您能否告诉我们,在这种情况下,如何修改数据结构,保持节[]完整?这样编写节[]将使其成为一个数组。因此,vueJs将始终查找类型为array的sections属性,而正如您所料,它将不会找到该属性,并且将始终向您返回未定义的错误。正如我所说,您必须使sections[]成为一个对象数组,这样您就可以使用此行'this.boundData.sections[sectionId]访问它.isEditMode'或保持原样并像那样访问它'this.boundData.sections.isEditMode'我理解这一点,但我需要有关代码中的确切语法的帮助…您要求vue读取某个不存在的数组!所以据我所知,不能用同样的snytax来完成。您将不得不更改某些存储库,但您能否告诉我们,在这种情况下,如何准确地修改数据结构,以保持节[]的完整性?这样编写节[]将使其成为一个数组。因此,vueJs将始终查找类型为array的sections属性,而正如您所料,它将不会找到该属性,并且将始终向您返回未定义的错误。正如我所说,您必须使sections[]成为一个对象数组,这样您就可以使用此行'this.boundData.sections[sectionId]访问它.isEditMode'或保持原样并像那样访问它'this.boundData.sections.isEditMode'我理解这一点,但我需要有关代码中的确切语法的帮助…您要求vue读取某个不存在的数组!所以据我所知,不能用同样的snytax来完成。你必须改变一些事情