2016-06-29 2 views
0

사전 (문자열)을 웹 사이트의 데이터 레이어로 전달하는 방법을 찾으려고합니다.사전을 문자열로 변환하여 데이터 레이어로 밀어 넣기위한 멋진 구문

다음 코드 사용하여 구축

내 배열 : 나는 데이터 계층에 전달하려면

 [{foreach from=$orderArticles item="currOrderArticle"}] 
     [{assign var="currBasePrice2" value=$currOrderArticle-getBasePrice()}] 
     product_list.push(
          { 
          id: "[{$currOrderArticle-oxorderarticles__oxartnum->value}]", 
          price: [{$currBasePrice2->getBruttoPrice()}], 
          quantity: [{$currOrderArticle-oxorderarticles__oxamount->value}] 
          } 
     ); 
     products_info.push(
          { 
          transaction_id: '[{$order->oxorder__oxordernr-value}]', 
          transaction_cid: '[{$order->oxorder__oxuserid-value}]', 
          item_id: '[{$currOrderArticle-oxorderarticles__oxartnum->value}]', 
          item_value: '[{$basket-getDiscountedNettoPrice()}]', 
          item_quantity: '[{$currOrderArticle-oxorderarticles__oxamount->value}]' 
          } 
     ); 
    [{/foreach}] 

을, 나는 다음을 수행하십시오

dataLayer.push({ 
    ProductsInfo: products_info 

을});

이 작동합니다. 문제는이 배열을 실제로 수정하기 위해서입니다. I로

dataLayer.push({ 
     ProductsInfo: products_info|json_encode|escape:'url' 
}); 

답변

0

:

products_info|json_encode|escape:'url' 

하지만 푸시 동안 그것을하려고 할 때, 그것은 작동하지 않습니다 나는 데이터 레이어로 전달하기 전에 여기에 다음을 적용 할 것

: 다른 게시물에 당신에게, 멋지 표현식은 당신이 자바 스크립트 문자열을 사용하고, 그것은이 따옴표로 묶어야합니다,

또한 귀하의 경우 [{및}]에서, 구분 기호로 묶어야합니다

dataLayer.push({ 
     ProductsInfo: '[{products_info|json_encode|escape:'url'}]' 
});