AMPscript调用SSJS内容块变量异常:输出变量名而非实际值求助
问题解决:AMPscript循环生成变量名后无法获取实际值
你当前的代码是将AMPscript语法字符串拼接成变量@test_data,直接输出时系统只会把它当作纯文本处理,不会解析执行其中的v()函数,所以显示的是字面名称而非变量实际值。
解决方法是使用TreatAsContent()函数,让系统解析拼接后的字符串中的AMPscript代码:
修改后的代码如下:
%%=ContentBlockbyKey("ssjs_testing")=%% %%[ FOR @i = 0 TO 2 DO SET @varName = Concat("@mls_number_0", @i) SET @test_data = TreatAsContent(Concat('%%=v(', @varName, ')=%%')) ]%% <p>%%=v(@test_data)=%%</p> %%[NEXT @i]%%
或者更简洁的写法,直接在输出环节使用TreatAsContent:
%%=ContentBlockbyKey("ssjs_testing")=%% %%[ FOR @i = 0 TO 2 DO SET @varName = Concat("@mls_number_0", @i) ]%% <p>%%=TreatAsContent(Concat('%%=v(', @varName, ')=%%'))=%%</p> %%[NEXT @i]%%
补充说明
TreatAsContent()的作用是强制系统解析字符串中的AMPscript语法,相当于对这段代码做二次编译执行。- 需确保SSJS内容块中定义的
@mls_number_0X类变量为全局作用域,能被当前AMPscript代码正常访问。
内容的提问来源于stack exchange,提问作者Jason G
相关产品推荐
相关产品推荐

