Ошибка загрузки модели представления компонентов с выбыванием с использованием requireJS

Я работаю с новой функциональностью компонентов knockout 3.2 и пытаюсь загрузить компоненты с помощью requireJS. Однако у меня странная проблема. В принципе, когда я жестко кодирую модель представления в функции регистра, все работает нормально. Когда я пытаюсь загрузить точно такую ​​же модель представления, используя requireJS, она работает неправильно.

Вот пример HTML-кода для загрузки компонента:

<div data-bind="component: { name: 'test'}"></div>

Вот HTML-код в шаблоне, который будет загружать этот компонент:

<a href="#" data-bind="click: addNew">add</a>
<span data-bind="visible: Adding">test</span>

Когда я пишу свою функцию регистрации, как показано ниже, все работает как положено (это означает, что при загрузке текст «test» не отображается, пока пользователь не щелкнет ссылку «add»):

ko.components.register('test',
{
    template: { require: 'text!path/theTemplateFromAbove.html' },
    viewModel:
        function() {
            var self = this;
            self.Adding = ko.observable(false);

             self.addNew = function() {
                 self.Adding(true);
             }
        }
 });

Но если я попытаюсь изменить это, чтобы использовать requireJS для загрузки модели представления, это не сработает. «Тестовый» текст отображается сразу, а пользователь не нажимает на ссылку «Добавить». Наблюдаемые на модели представления каким-то образом запутываются.

Вот содержимое файла скрипта (обратите внимание, что модель представления такая же):

define(["knockout"], function (ko) {

    function viewModel() {  
        var self = this;
        self.Adding = ko.observable(false);

        self.addNew = function () {
            self.Adding(true);
        }
    };

    return viewModel;
});

И функция регистрации теперь будет выглядеть так:

ko.components.register('test',
{
    template: { require: 'text!path/theTemplateFromAbove.html' },
    viewModel: { require: 'path/fileForMyTemplate' }
});

При отладке проблемы я добавил проверку в функцию resolViewModel из knockout-3.2.0. После того, как он вызывает новый viewModelConfig (params), я проверяю, является ли «Добавление» наблюдаемым на объекте. Когда модель представления жестко закодирована в функции регистра, она возвращает true. Когда я использую requireJS для загрузки модели представления, она возвращает false.

Есть идеи о том, что я здесь делаю не так?

Ответы на вопрос(1)

Ваш ответ на вопрос