如何将带有翻译字符串的对象从 symfony 树枝传递到 vue 组件

Posted

技术标签:

【中文标题】如何将带有翻译字符串的对象从 symfony 树枝传递到 vue 组件【英文标题】:How to pass an object with translation strings from symfony twig to a vue component 【发布时间】:2021-11-04 05:00:39 【问题描述】:

我正在使用商店软件(symfony twig)并从 vue 获得了一个我必须实现的小应用程序。我只想从商店传递一个带有翻译字符串的对象以用作组件中的文本,但我只得到对象键并且值为空。

在我的树枝模板中:

% set snippets = 
 
 header: example.header|trans
 
%
<div id="app" snippet= snippets|json_encode() >
  <demo></demo>
</div>
<script>
 new Vue(
  components: 
   demo: Component
  
 ).$mount('#app')
</script>

在我得到的 vue 组件中

 data() 
  let snippetSet = document.getElementById('app').getAttribute('snippet')
  return 
   snippet: snippetSet,
  
 ,
 mounted() 
  console.log(this.snippet);
 

输出是 "header":""

这是我第一次使用这个堆栈,所以我非常感谢任何关于如何以不同方式实现我的目标的建议。

【问题讨论】:

【参考方案1】:

您必须将一个字符串传递给 trans 函数,现在您正在尝试读取一个不存在的变量。

这应该可行:

% set snippets = 
 
 header: "example.header"|trans
 
%

【讨论】:

以上是关于如何将带有翻译字符串的对象从 symfony 树枝传递到 vue 组件的主要内容,如果未能解决你的问题,请参考以下文章

如何将对象转换为字符串(Twig & Symfony)?

从日期到字符串的树枝过滤器

如何从 symfony 中删除树枝? [关闭]

如何在Symfony2中将json渲染成树枝

Symfony 2 树枝拆分功能未按预期工作

使用 Symfony 2 本地化树枝中的日期