【发布时间】:2016-01-08 16:59:08
【问题描述】:
我正在尝试在我的 Symfony2 项目中实现 Knockout,并且我已经到了需要将集合类型集成到我的表单中的地步。我遵循了 Symfony2 文档 (http://symfony.com/doc/current/reference/forms/types/collection.html)。我在SF2方面有丰富的经验。不过,我最近开始使用 Knockout。
我想知道的是如何将 symfony2 的 twig {% for bform in 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,但这不是我的情况。我希望当页面加载当前信息时,敲除将其拾取。
如果这还不够清楚,请告诉我。
【问题讨论】:
-
您将在哪里进行淘汰赛的数据,以及如何对这些数据进行更改?
-
嗯,这是一个很好的问题,但数据只会附加到发送到 html.twig 的 formView 上。当我渲染表单时,数据就在那里 {{ form_widget(bla呜呜呜
标签: javascript php forms symfony knockout.js