symfony集合类型将javascript函数添加到集合字段

时间:2019-04-09 13:35:40

标签: jquery symfony symfony4 easyadmin

我在收集字段中添加了一些JavaScript。 但是,我不知道如何在不重复的情况下以良好的方式编写javascript,因此每个新字段或退出字段都包含此javascript。

预先感谢:)

我现在使用这个:

$('a').on('click', function() {
        setTimeout( function () {
        $('#property_propertydistances_0_icon').fontIconPicker({
            source:    ['icon-heart', 'icon-search', 'icon-user', 'icon-tag', 'icomoon-home2'],
            emptyIcon: false,
            hasSearch: false
        });
            } , 300 );
});

    jQuery(document).ready(function($) {
        $('#property_propertydistances_0_icon').fontIconPicker({
            source:    ['icon-heart', 'icon-search', 'icon-user', 'icon-tag', 'icon-help'],
            emptyIcon: false,
            hasSearch: false
        });
    });

$('a').on('click', function() {
        setTimeout( function () {
        $('#property_propertydistances_1_icon').fontIconPicker({
            source:    ['icon-heart', 'icon-search', 'icon-user', 'icon-tag', 'icomoon-home2'],
            emptyIcon: false,
            hasSearch: false
        });
            } , 300 );
});

    jQuery(document).ready(function($) {
        $('#property_propertydistances_1_icon').fontIconPicker({
            source: fnt_icons_2,
            theme: 'fip-darkgrey'
        });
    });

我将easyadmin与该adjustmnets一起用于字段,只能通过formbuilder和js代码来完成。

公共函数buildForm(FormBuilderInterface $ builder,数组$ options)

{

$builder

    ->add('icon', TextType::class, array('label' => 'Icon', 'empty_data' => 'icon','label_attr' => array('style'=> '') ))

    ->add('title', TextType::class, array('label' => 'Title (English)', 'empty_data' => 'name','label_attr' => array('style'=> '') ))

    ->add('title_th', TextType::class, array('label' => 'Title (Thai)', 'empty_data' => 'object','label_attr' => array('style'=> '') ))

    ->add('distance', NumberType::class, array('label' => 'Distance (km)', 'empty_data' => '4','label_attr' => array('class'=> 'col-4') ))


;

}

然后我也只加载js en css文件,然后使用该jquery函数覆盖文本文件。我使用https://fonticonpicker.github.io/

这是我的easyadminyaml代码部分

                - { property: 'propertydistances', css_class: 'propertydistancejava distance-collectionstyling',  id: 'testid1', type: 'collection', type_options: { entry_type: 'App\Form\DistanceType', by_reference: false,  attr: { name: 'testname2', id: 'testid2'} }}      

1 个答案:

答案 0 :(得分:0)

在您的$builder中,将类添加到您的字段中。然后,在您的JavaScript中,迭代您的类以添加JavaScript代码。例如:

    $builder
        ->add('distance', TextType::class, [
            'attr' => ['class' => 'property-js'],
        ])
        ->add('image', TextType::class, [
            'attr' => ['class' => 'property-js'],
        ])

    jQuery(document).ready(function($) {
        $('.property-js').each(function(elem) {
            elem.fontIconPicker({
               source:    ['icon-heart', 'icon-search', 'icon-user', 'icon-tag', 'icon-help'],
               emptyIcon: false,
               hasSearch: false
            });
        });
    });