我正在使用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中,我得到的输出为空数组[]
,实际的姓名数据(对象数组)未显示。谁能帮助我我要去哪里哪里?
答案 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>