mikoweb/symfony-backbone-bundle

该包已被 废弃 并不再维护。未建议替代包。

安装: 135

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

语言:JavaScript

类型:symfony-bundle

0.2.2 2016-04-23 13:52 UTC

This package is not auto-updated.

Last update: 2016-12-31 08:52:10 UTC


README

将此包添加到您的 composer.json 文件中

require: {
    "mikoweb/symfony-backbone-bundle": "~0.2"
}

在您的内核中注册此包

// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new SymfonyBackboneBundle\SymfonyBackboneBundle(),
);

执行以下命令

assets:install --symlink

在代码中添加

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>
<script type="text/javascript" src="{{ asset('bundles/symfonybackbone/js/symfony-backbone.js') }}"></script>

Symfony 表单

模型绑定示例

var Model = Backbone.symfony.ModelForm.extend({
        formPrefix: 'foo'
    }),
    model = new Model(),
    form = $('form[name="foo"]');
form.on("submit", function (e) {
    e.preventDefault();
    model.bindForm(e.target);
    model.save();
});

在控制器中接收数据

$form = $this->createForm(new FooFormType());
$manager = $this->get('backbone.manager.form');
$manager->hanadleRequest($form, $request);
// do something
return new JsonResponse([
    'data' => $manager->getFormData($form),
    'submitted' => $form->isSubmitted(),
    'valid' => $form->isValid(),
    'errors' => $manager->getErrorsArray($form),
]);

自动绑定数据

view = new Backbone.symfony.ViewForm();
view.setModelForm(model);
view.setFormElement(form);
form.on('submit', function (e) {
    model.save();
    e.preventDefault();
});

关闭自动绑定...

view.offFormElement();