来自api的sails.js数据在视图中循环

时间:2015-08-27 15:48:28

标签: json sails.js ejs

我在尝试循环浏览json对象时遇到错误。我从api获取数据并将其传递给view.I试图打印整个对象他们没有问题。如果我尝试循环低谷,它会抛出错误。但是,如果我在控制器中硬编码响应(无论响应来自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>

1 个答案:

答案 0 :(得分:3)

它解决了。我不得不使用JSON.parse。

返回res.view(&#39;主页&#39;,{菜单:JSON.parse(body)});