繁体   English   中英

KnockoutJS + Symfony2 + Twig收集表单添加和删除项

[英]KnockoutJS + Symfony2 + Twig collection form add and remove items

我正在尝试在我的Symfony2项目中实现Knockout,现在我需要将collectiontype集成到表单中。 我遵循了Symfony2文档( http://symfony.com/doc/current/reference/forms/types/collection.html )。 我在SF2方面拥有丰富的经验。 但是,我最近开始进行淘汰赛。

我想知道的是如何将symfony2的树枝{%for form.a.bs%}用于data-bind =“ foreach:b”,以便我的表显示当前数据并允许我添加/使用KnockoutJS删除。

我仍然没有一段有效的代码,因为我正在考虑如何实现这一点,但这是表<tbody>的示例:

<tbody data-prototype="{{ form_widget(form.a.bs.vars.prototype)|e }}">
{% for bForm in form.a.bs %}
<tr>
    <td>{{ form_widget(bForm.first) }}</td>
    <td>{{ form_widget(bForm.second) }}</td>       
</tr>
{% endfor %}
</tbody>

在我的淘汰赛中,我目前有:

function viewModel() {
    self = this;
    self.bs = ko.observableArray();
    self.addB = function() {
        // Logic to add a new form row in the table provided in SF2 documentation above
    }
}
ko.applyBindings(new viewModel());

我不知道如何将其包装在一起。 我知道我可以将JSON与Knockout结合使用,但是从SF2的角度考虑,当您执行操作时,可以说createAAction(){}以格式返回.html.twig,在Knockout文档中我所看到的是从服务器检索JSON,但这不是我真正的情况。 我想在页面上加载当前信息时,剔除将其提取出来。

让我知道这是否还不够清楚。

使用Knockout进行工作将不会有任何直接或值得的方法。 Knockout的整个前提是所有数据都在视图模型中,并且视图反映了视图模型并接受视图模型的输入。 Symphony2将数据放入视图中。

使用jQuery执行您要执行的DOM操作会更好。

如果可以帮助您管理数据依赖关系,那么您当然可以在后台使用Knockout的可观察对象和计算对象,并且甚至可以将某些绑定放在页面上,只要它们位于DOM片段中即可,而不会由其他任何内容来管理 但是,将Knockout绑定与另一个DOM构造系统结合使用将不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM