Доступ к данным в созданном из реквизита Vue.js - PullRequest
0 голосов
/ 18 сентября 2018

Я не могу получить доступ к данным из реквизита в созданной функции.Он хорошо работает в методах, как вы можете увидеть в коде ниже.

enter image description here

И его работа в методах, как показано ниже

enter image description here

export default {
    props: ['projectId'],
    data() {
        return {
            elements: []
        }
    },
    created() {
        axios.get(`api/projects/${this.projectId}/elements`).then(response => {
           this.elements = response.data.data
        });
    },
    methods: {
        addingElement(element) {
            alert(this.projectId);
        }
    }
}

Родительский шаблон

<add-project-element :projectId="project.id"></add-project-element>

Спасибо

Ответы [ 3 ]

0 голосов
/ 18 сентября 2018

<add-project-element :projectId="project.id"></add-project-element> должно быть

<add-project-element :project-id="project.id"></add-project-element>

Имена атрибутов HTML не чувствительны к регистру.Любой заглавный символ будет интерпретирован как строчный.Таким образом, названия реквизитов в CamelCase должны использовать их эквиваленты в шашлыке.

0 голосов
/ 18 сентября 2018

Хорошо, наконец-то я что-то нашел, я не уверен, что это правильно, но работает нормально.

на самом деле, реквизит рендерится после создания, поэтому его показ не определен. поэтому я установил некоторое время. и это сработало

    created() {
    setTimeout(() => {
        axios.get(`/api/projects/${self.projectId}/elements`)
            .then(response => {
                this.elements = response.data.data
            });
    }, 1)
},

Спасибо всем

0 голосов
/ 18 сентября 2018

В вашем запросе axios есть опечатка.Ваша опора projectId, но у вас есть project.id там ...

...