首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用swig/twig创建forEach循环

使用swig/twig创建forEach循环
EN

Stack Overflow用户
提问于 2017-10-17 06:31:06
回答 1查看 174关注 0票数 0

我正在尝试创建一个循环,它将为我输出值到表中。到目前为止,我所拥有的内容在呈现的页面上没有加载到任何地方。没什么可展示的。我不太确定如何用swig/twig做一个循环,所以我不知道在这篇文章中应该包括什么。请看一下代码,如果你需要其他东西,我会根据要求添加它。我在循环中的尝试:

代码语言:javascript
复制
{%  for aps in aps  %}
  <tr>
   <td>{{aps.name}}</td>
   <td>{{aps.manufacturer}}</td>
   <td>{{aps.model}}</td>
   <td>{{aps.name}}</td>
   <td>{{aps.notes}}</td>
  </tr>
{% endfor %}

型号:

代码语言:javascript
复制
var accessPointsSchema = new Schema({
  name: {String},
  manufacturer: {type: String},
  model: {type: String},
  IPAdress: {type: String},
  MACAdress: {type: String},
  range: {type: Number()},
  bands: {type: String},
  channel: {type: Number},
  dateBought: {type: Date},
  PoE: {type: Boolean},
  assetNumber: {type: Number},
  warrantyExpiration: {type: Date},
  location: {type: String},
  notes: {type: String},
  author: {
      id: {
         type: mongoose.Schema.Types.ObjectId,
         ref: "User"
      },
      email: String
   }
});

路由:

代码语言:javascript
复制
// show model
  app.get('/dashboard/it/model',
    setRender('dashboard/it/model'),
    setRedirect({auth: '/login'}),
    isAuthenticated,
    dashboard.getDefault,
    (req, res) => {
      console.log("Reached end/start thing");
      AP.find({}, function(err, allAP){
        console.log(allAP);
       if(err){
         console.log("Reached if");
           console.log(err);
       } else {
         console.log("Reached else");
          setRender('dashboard/it/model',{aps:allAP});
       }
    });
    });
EN

Stack Overflow用户

发布于 2017-10-17 08:36:55

根据您在https://github.com/joshk132/asset-management上发布的代码,我将尝试回答

首先,setRender似乎不接受第二个参数。因此,请尝试使用下面这样的内容:

代码语言:javascript
复制
app.get('/dashboard/it/model',
    setRender('dashboard/it/model'),
    setRedirect({auth: '/login'}),
    isAuthenticated,
    (req, res, next) => { // Moved this before getDefault
        console.log("Reached end/start thing");
        AP.find({}, function(err, allAP) {
            console.log(allAP);
            if(err){
                console.log("Reached if");
                console.log(err);
                next(err);
            } else {
                console.log("Reached else");
                res.locals.aps = allAP; // Set the data in locals
                next();
            }
        });
    },
    dashboard.getDefault
);

重要的是,我在调用dashboard.getDefault之前移动了数据库内容,因为getDefault调用res.render,在此之前需要加载所有数据。

您还需要在getDefault的末尾处理next()调用,因为没有其他事情可做。

然后,模板将如下所示:

代码语言:javascript
复制
{%  for ap in aps  %}
  <tr>
    <td>{{ap.name}}</td>

诸若此类。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46780000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档