如何在专用包中引用自定义字段类型的twig?

时间:2011-11-16 15:02:22

标签: symfony twig

我(仍在)尝试将http://xoxco.com/clickable/jquery-tags-input引入专用捆绑包中。到目前为止,我有一个类型作为文本的子和数据转换器,将逗号分隔的字符串转换为对象数组,反之亦然。

现在我想用上面链接的JQuery代码修饰文本字段。据我了解,我必须定义一个像

这样的块
{% block manytomanycomboselector_widget %}
{% spaceless %}
  {{ block('text_widget') }}
  <script>
    $(function(){
      $("#{{ id }}").tagsInput();
    });
  </script>
{% endspaceless %}
{% endblock manytomanycomboselector_widget %}
[MyTypeBundle]Resources/views/Form/fields.html.twig

中的

现在,this question at StackOverflow的文档和答案都指出我必须在使用表单的模板或fields.html.twig中的某个地方引用app/,但这不是似乎必然是其他字段类型的捆绑,虽然我在他们的代码中看不到为什么。 除了此文件中的此块之外,我还需要在包内配置什么?

此外,我没有得到我必须把标题的css和js要求以及如何处理jQuery本身等一般要求的地方。

1 个答案:

答案 0 :(得分:4)

我有同样的问题&amp;我通过在twig.form.resources参数中合并我的字段模板来解决此问题。

所以,在我的bundle的DI扩展(MyBundle / DependencyInjection / MyBundleExtension.php)中,我添加:

$container->setParameter('twig.form.resources', array_merge(
    array('MyBundle:Form:field_widget.html.twig'),
    $container->getParameter('twig.form.resources')
));

请注意,您的捆绑包必须在TwigBundle AppKernel之后注册。

编辑:

表单字段未链接到任何JS或CSS。所以,IMO,你有2个解决方案。

首先,你直接包装你的JS&amp;您的字段模板中的CSS和您的捆绑包保持独立。

其次,您指示最终用户他们需要手动包含一些JSS&amp; CSS每次使用您的字段类型。

IoFormBundle&amp; GenemuFormBundle在他们的文档中使用了第二个解决方案,如解释。