Knockout. js не находит функцию в привязке данных - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть шаблон Magento2 с кнопкой:

 <button data-bind="attr: {
                           id: 'update-cart-item-'+item_id,
                           'data-cart-item': item_id,
                           click: incrementClickCounter,
                           title: $t('Update')
                           }"
                            class="update-cart-item"
                            style="display: none">
                        <span data-bind="i18n: 'Update'"></span>
                    </button>

Часть, которую я добавил, здесь:

click: incrementClickCounter

In тег сценария над страницей html, который у меня есть

<script>
        require(["jquery","ko"], function ($) {
                        var viewModel = {
                    numberOfClicks : ko.observable(0),
                    incrementClickCounter : function() {
                        var previousCount = this.numberOfClicks();
                        this.numberOfClicks(previousCount + 1);
                        console.log(this.numberOfClicks);
                    }
                };
        });
    </script>

, но я получаю сообщение об ошибке

Сообщение: incrementClickCounter не определен

1 Ответ

0 голосов
/ 25 февраля 2020

Я на самом деле могу ввести jquery в привязку следующим образом:

<button afterRender="function (target, viewModel) {
                        console.log('Rendered element:', target);
                        console.log('Associated view model:', viewModel);
                        console.log(this === viewModel);
                                jQuery(target).click(function() {
                                    alert( 'Handler for .click() called.');
                                  });
                    }"

Но он очень грязный

...