更好的解决方案,用于从控制器检索tag-it的标签数组

时间:2014-03-29 09:15:33

标签: twitter-bootstrap symfony jquery-plugins tag-it

您好我在我的项目中使用Symfony2和bootstrap。我想问一下这个问题的更好解决方案。

我试图从我的数据库中获取所有标记,并将它们分配给tag-it插件的availableTags属性。

所以我提出了这个解决方案。

这是我的控制器代码:

/**
 * 
 * @Route("/ask", name="ask")
 * @Security( "has_role( 'ROLE_USER' )" )
 * @Method("GET")
 * @Template
 */
public function askAction() {

    $tags = $this->getDoctrine()->getRepository('VerySoftAskMeBundle:Tag')->findAll();


    $entity = new Question();
    $form = $this->createCreateForm($entity);

    return array(
        'entity' => $entity,
        'form' => $form->createView(),
        'tags' => $tags
    );
}

这是我的树枝模板:

<label class="col-lg-1 text-left askLabels" for="tagField">Tags</label>
<input id="tagField" type="text" class="form-control col-lg-11">
<input id="fieldTags" type="hidden" value="{{ tags|join(',') }}">

这是我的剧本:

$('#tagField').tagit({
    availableTags: $('#fieldTags').val().split(',')
});

1 个答案:

答案 0 :(得分:2)

您可以直接在javascript中定义它,而不是两次执行此操作:

$('#tagField').tagit({
    availableTags: ["{{ tags|join('", "')|raw }}"]
});

删除隐藏的输入:

<input id="fieldTags" type="hidden" value="{{ tags|join(',') }}">