无法使用Vue.js应用程序从api控制器js文件中获取数据以查看Sails js中的ejs文件

时间:2019-01-22 08:51:53

标签: javascript vue.js ecmascript-6 sails.js

我正在使用Vue.js应用程序开发Sails(最新版本1.x),在我的names.page.js中,我有

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

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并显示对象的名称数组。

<pre>{{names}}</pre>

现在,我从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
    }

    }

但是当我给<pre>{{names}}</pre>时,在我的names.ejs中,我得到的输出为空数组[],实际的姓名数据(对象数组)未显示。谁能帮助我我要去哪里哪里?

1 个答案:

答案 0 :(得分:1)

view-names.js似乎是一个动作,因此它不会直接将数据发送到ejs模板。

您必须使用names.page.js,这是names.ejs视图的页面实例。

您可以在操作中使用sampleNames,然后将结果发送到names.page.ejs变量,该变量又可以从视图names.ejs中访问

当然

首先构建变量并将其发送到页面实例

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

names.page.js(页面实例) 您已在数据中设置了变量 data: { mynames: {} }

名称从操作view-names.js中填充

现在您可以在视图中使用它,例如在v-for循环中

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