为什么我的玉代码不起作用?

时间:2016-04-28 16:37:23

标签: pug

我正在学习玉,并试图用它进行迭代。

这是我的玉码,

body
  - var users = ['one','two', 'three']
  - var roles = ['admin', 'user', 'stranger']
  for user in users
    - if (user.role == 'admin')
      p #{user} is an admin
    - else
      p= user.name
  for user in users
    ul
      li= user

它打印ul列表,但它不会打印我的第一次迭代。我在这里错过了什么吗?我应该制作user.role数组吗?如果我应该,我怎么能做到?

提前致谢!

2 个答案:

答案 0 :(得分:1)

如果你的第一个循环需要工作,需要如下代码:

body
 - var users = [{role:'admin',name:'one'},{role:'user',name:'two'}, {role:'stranger',name:'three'}]
 - var roles = ['admin', 'user', 'stranger']
 for user in users
     - if (user.role == 'admin')
        p #{user.name} is an admin
    - else
        p= user.name

答案 1 :(得分:0)

在两个for循环中,您正在迭代字符串数组:var users = ['one','two', 'three'] 因此,在两个循环user中都将是一个包含其中一个值的字符串。

在第一个for循环中,您尝试访问role变量的user属性。但由于它是一个字符串,因此没有这样的属性,而你的if语句的计算结果为False

在第二个循环中,您直接使用user而不尝试访问不存在的属性。这就是它起作用的原因。