将数据从节点传递给玉? [英] Passing data from node to jade?

查看:34
本文介绍了将数据从节点传递给玉?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题是我渲染了一个视图并发送了一些数据

console.log(products);//显示一个数组res.render('seller/sell',{'shop_id':req.user.shop_id,'products':products});

我把这样的数据保存在玉中

input(id='shop_id',type='hidden',name='shop_id',value='#{shop_id}')输入(id='pd',type='hidden',name='pd',value='#{products}')如果(产品!='')每个 val , key in productsa(href!='home/sell/edit?id=#{val.id} ',class='product')img(class='product_thum',src!='#{val.product_thum}',alt!='#{val.product_name}',title!='#{val.product_name}')p.product_name #{ val.product_name}

然后我尝试获得产品

var d = $('#pd').val();console.log(typeof d);//显示字符串

我知道产品应该是一个数组,否则

 if(products !='')每个 val , key in productsa(href!='home/sell/edit?id=#{val.id} ',class='product')img(class='product_thum',src!='#{val.product_thum}',alt!='#{val.product_name}',title!='#{val.product_name}')p.product_name #{ val.product_name}

行不通,但为什么我需要数组时得到一个字符串?

我做错了什么?

解决方案

您不能在隐藏的输入字段中存储"一个数组,但您可以做的是存储产品 ID 的列表,如下所示:

>

var productIds = products.map(function(product){return product.id}).toString();res.render('卖家/卖家',{'shop_id':req.user.shop_id,'products':products, productIds: productIds});

然后,在您的玉观中:

input(id='shop_id',type='hidden',name='shop_id',value='#{shop_id}')输入(id='pd',type='hidden',name='pd',value='#{productIds}')如果(产品!='')每个 val , key in productsa(href!='home/sell/edit?id=#{val.id} ',class='product')img(class='product_thum',src!='#{val.product_thum}',alt!='#{val.product_name}',title!='#{val.product_name}')p.product_name #{ val.product_name}

pd 的值现在将是一个逗号分隔的产品 ID 列表

不是特别优雅,但它解决了问题.

The problem is I render a view and send some data

console.log(products); // shows an array
res.render('seller/sell',{'shop_id':req.user.shop_id ,'products':products});

and I save the data like this in jade

input(id='shop_id',type='hidden',name='shop_id',value='#{shop_id}')
input(id='pd',type='hidden',name='pd',value='#{products}')

 if(products !='')
    each val , key in products
        a(href!='home/sell/edit?id=#{val.id} ',class='product')
            img(class='product_thum',src!='#{ val.product_thum}',alt!='#{ val.product_name}',title!='#{ val.product_name}')
            p.product_name #{ val.product_name}

and then I try to get the products

var d = $('#pd').val();
console.log(typeof d);  //shows string

I know that products shuld be a array otherwise

    if(products !='')
    each val , key in products
        a(href!='home/sell/edit?id=#{val.id} ',class='product')
            img(class='product_thum',src!='#{ val.product_thum}',alt!='#{ val.product_name}',title!='#{ val.product_name}')
            p.product_name #{ val.product_name}

Wont work, but why did I get a string when I need the array?

What did I do wrong?

解决方案

You cannot 'store' an array in a hidden input field, but what you could do is store a list of the product id's, something like this:

var productIds = products.map(function(product){return product.id}).toString();

res.render('seller/sell',
  {'shop_id':req.user.shop_id ,'products':products, productIds: productIds});

Then, in your jade view:

input(id='shop_id',type='hidden',name='shop_id',value='#{shop_id}')
input(id='pd',type='hidden',name='pd',value='#{productIds}')

 if(products !='')
    each val , key in products
        a(href!='home/sell/edit?id=#{val.id} ',class='product')
            img(class='product_thum',src!='#{ val.product_thum}',alt!='#{ val.product_name}',title!='#{ val.product_name}')
            p.product_name #{ val.product_name}

The value of pd will now be a comma separated list of product Ids

Not particularly elegant, but it solves the problem.

这篇关于将数据从节点传递给玉?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆