sails.js 来自 api 的数据在视图中循环
sails.js data from api loop through in view
我在尝试遍历 json 对象时遇到错误。我正在从 api 获取数据并将其传递给 view.I 尝试打印整个对象,它们没有问题。如果我尝试循环 trough ,它会抛出错误。但是如果我在控制器中硬编码响应(无论响应来自 api )它工作正常。
这是带有硬编码响应的控制器
module.exports = {
index: function(req, res) {
var request = require("request");
request("http://app.coreosadmin.com/emp.json", function(error, response, body) {
if (error) {
console.log(error);
} else {
var menuData=[{"id":"Dasboard","icon":""},
{"id":"Subscriptions","icon":""},
{"id":"Extensions","icon":""},
{"id":"Adds Management","icon":""},
{"id":"Client Management","icon":""},
{"id":"User Management","icon":""},
{"id":"Settings","icon":""},
{"id":"Enums","icon":""},
{"id":"Accounts","icon":""},
{"id":"Reports","icon":""}];
return res.view('homepage',{menus:menuData});
}
});
}
};
这是我的控制器
module.exports = {
index: function (req, res) {
var request = require("request");
request("http://someurl.com/emp.json", function(error, response, body) {
if (error) {
console.log(error);
} else {
return res.view('homepage',{menus:body});
}
});
}
};
这是我家的风景
<div class="menu_section">
<ul>
<% menus.forEach(function(menu) { %>
<li title="<%- menu.id %>">
<a href="index.html">
<span class="menu_title"><%- menu.id %></span>
</a>
</li>
<% }); %>
</ul>
</div>
解决了。我不得不使用 JSON.parse .
return res.view('homepage',{menus:JSON.parse(body)});
我在尝试遍历 json 对象时遇到错误。我正在从 api 获取数据并将其传递给 view.I 尝试打印整个对象,它们没有问题。如果我尝试循环 trough ,它会抛出错误。但是如果我在控制器中硬编码响应(无论响应来自 api )它工作正常。
这是带有硬编码响应的控制器
module.exports = {
index: function(req, res) {
var request = require("request");
request("http://app.coreosadmin.com/emp.json", function(error, response, body) {
if (error) {
console.log(error);
} else {
var menuData=[{"id":"Dasboard","icon":""},
{"id":"Subscriptions","icon":""},
{"id":"Extensions","icon":""},
{"id":"Adds Management","icon":""},
{"id":"Client Management","icon":""},
{"id":"User Management","icon":""},
{"id":"Settings","icon":""},
{"id":"Enums","icon":""},
{"id":"Accounts","icon":""},
{"id":"Reports","icon":""}];
return res.view('homepage',{menus:menuData});
}
});
}
};
这是我的控制器
module.exports = {
index: function (req, res) {
var request = require("request");
request("http://someurl.com/emp.json", function(error, response, body) {
if (error) {
console.log(error);
} else {
return res.view('homepage',{menus:body});
}
});
}
};
这是我家的风景
<div class="menu_section">
<ul>
<% menus.forEach(function(menu) { %>
<li title="<%- menu.id %>">
<a href="index.html">
<span class="menu_title"><%- menu.id %></span>
</a>
</li>
<% }); %>
</ul>
</div>
解决了。我不得不使用 JSON.parse .
return res.view('homepage',{menus:JSON.parse(body)});