小编eno*_*ixi的帖子

knockout contentEditable binding

我编写了一个自定义绑定处理程序,可以切换元素是否为contentEditable.我还希望在编辑元素的内容时更新任何html绑定,因此它会侦听输入事件并更新html绑定(如果可用).

ko.bindingHandlers.contentEditable = {
    update: function (element, valueAccessor, allBindingsAccessor) {
        var value = ko.unwrap(valueAccessor());
        element.contentEditable = value;

        var $element = $(element);

        if (value) {
            var allBindings = allBindingsAccessor();
            var htmlBinding = allBindings.html;

            if (ko.isWriteableObservable(htmlBinding)) {
                $element.on("input", function (event) {
                    htmlBinding(element.innerHTML);
                });
            }
        } else {
            $element.off("input");
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

但是,问题出在这里:

  • 用户在元素中键入内容
  • 触发输入事件
  • html绑定已更新
  • 元素的innerHTML已更新
  • 元素中的光标位置返回到开头

一个jsfiddle说千言万语...... http://jsfiddle.net/93eEr/1/

关于如何处理这件事,我有点难过.

knockout.js

15
推荐指数
1
解决办法
5322
查看次数

Twig form_theme _self自定义单个字段

我有一个视图,我试图根据http://symfony.com/doc/current/cookbook/form/form_customization.html#how-to-customize-an-individual覆盖单个字段的表单主题- 田.

视图看起来像这样:

{% form_theme form _self %}

{% block _my_form_foo_widget %}
    <div class="input-append">
        {{ block('number_widget') }}
        <span class="add-on">%</span>
    </div>
{% endblock %}

<form>
    {{ form_row(form.foo) }}
    {{ form_row(form.bar) }}
</form>
Run Code Online (Sandbox Code Playgroud)

对于foo和bar行,一切看起来都是预期的,但是_my_form_foo_widget块本身也包含在输出中,即:

<div class="input-append">
    <span class="add-on">%</span>
</div>

<form>
    <div>
        <label for="my_form_foo">Bar</label>
        <div class="input-append">
            <input type="text" id="my_form_foo" name="my_form[foo]">
            <span class="add-on">%</span>
        </div>
    </div>
    <div>
        <label for="my_form_bar">Foo</label>
        <input type="text" id="my_form_bar" name="my_form[bar]">
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

我不能为我的生活弄清楚我做错了什么.作为一种解决方法,我只是在HTML注释中包含了块.

我在Symfony 2.4.1和Twig 1.15.0上.

symfony twig

5
推荐指数
1
解决办法
4570
查看次数

标签 统计

knockout.js ×1

symfony ×1

twig ×1