невозможно получить данные из js-файла контроллера API для просмотра ejs-файла в sails js с помощью приложения Vue.js - PullRequest
0 голосов
/ 22 января 2019

Я работаю над Sails (последняя версия 1.x) с приложением Vue.js, а в моем names.page.js у меня есть

data: { names : [], //… } * * 1005

beforeMount: function() { 
// Attach any initial data from the server.
 _.extend(this, SAILS_LOCALS);
 this.names = [{id: 1, name: 'abc'}, {id:2, name: 'xyz'}]
 },

Который я мог бы успешно получить в names.ejs и отобразить массив имен объектов.

<code><pre>{{names}}

Теперь я удалил код this.names = [{id: 1, name: 'abc'}, {id:2, name: 'xyz'}] из names.page.js и переместился в view-names.js, как показано ниже:

 fn: async function () {
    var sampleNames = [{id: 1, name: ‘abc’}, {id:2, name: ‘xyz’}]
    // Respond with view.
    return {
    names : sampleNames
    }

    }

но в моем names.ejs, когда я даю {{names}}, я получаю вывод в виде пустого массива [], данные о реальных именах (массив объектов) не отображаются. Может ли кто-нибудь помочь мне, где я иду не так.

1 Ответ

0 голосов
/ 22 января 2019

view-names.js выглядит как действие, поэтому он не отправляет данные в шаблон ejs напрямую.

Вы должны использовать names.page.js, который является экземпляром страницы для представления names.ejs.

Вы можете работать с sampleNames в действии, а затем отправлять результат в переменную names.page.ejs, которая, в свою очередь, доступна из представления names.ejs

Конечно,

Сначала создайте свою переменную и отправьте ее на экземпляр страницы

вид-names.js: names = [{id: 1, name: 'abc'}, {id:2, name: 'xyz'}] return { mynames: names }

names.page.js (экземпляр страницы) У вас есть переменная, установленная в данных data: { mynames: {} }

names заполняется действием action-names.js

Теперь вы можете работать с ним в представлении, например, в цикле v-for

<ul v-for="name in names"> <li>{{ name }}</li> </ul>

...