簡體   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