繁体   English   中英

如何将Angular对象传递给pug mixin?

[英]How to pass Angular object to pug mixin?

因此,我在Angular指令中有一个嵌套对象:

{
   "preview_type":"default",
   "position":0,
   "material": {
       "id":1,
       "name":"Fashion's Night Out",
       "code":"fashion-s-night-out",
       "is_adult_content":false,
       "is_private_content":false,
       "tags":[{
           "id":4,
           "name":"Vogue",
           "code":"vogue"
       },{
           "id":1,
           "name":"Tokio",
           "code":"tokio"
       }],
       "authors": [{
           "name":"Bill",
           "code":"bill"
       }],
       "image": { 
           "id":13,
           "preview_url":""
       }
    }
 }

我想将其传递给Pug mixin: +item-baseblock-preview('{{data.page_block_items[0]}}')

在mixin内部,此对象仅显示为对象:

mixin item-baseblock-preview(item)
    ...
    ...
    #{item}

如果我仅尝试显示#{item.position}类的对象的一个​​字段,则Pug不显示任何内容。 如何解决?

您可以在编译过程中运行的pug中包含实际的JavaScript。 所以绝对有可能。

看一下这个工作示例...

//- This is a pug mixin that produces an Angular Material list with checkboxes...
mixin list(repeat, title, event)
  md-list(layout='column', layout-align='start stretch', flex='100', style='overflow: scroll')
    md-list-item(ng-repeat="item in " + repeat, ng-click="event('debug', '{{item." + event + "}}')")
      p
        b= "{{item." + title + "}}"
      md-checkbox.md-secondary(ng-model='topping.wanted')

//- This generates two mixin-injected material design lists...

//- This one uses events.title to display, and sends events.content as an event...
+list('events', 'title', 'content')

//- This one uses events.content to display, and sends events.title as an event...
+list('events', 'content', 'title')

如果您对了解哈巴狗中javascript注入的工作方式感到困惑,只需记住=符号以外的任何内容都将像javascript一样对待,并将本地变量作为变量。 看看这篇文章,它在描述这一方面做得很好,并且还有更多... https://webapplog.com/jade/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM