Knockout.js не обновляет представление из динамического вызова ajax - PullRequest
2 голосов
/ 25 июля 2011

Я пытаюсь получить knockout.js, чтобы обновить мой взгляд после вызова ajax, но безуспешно.Я продолжаю получать ошибку ниже.Это ошибки на app.interactive.updateBindings.Параметр parseBindingAttribute viewModel не определен.

Ошибка:

Невозможно проанализировать атрибут привязки.Сообщение:
ReferenceError: interactive не определено;
Значение атрибута: template: { name: 'answerTmpl', foreach: interactive.answers }

Динамический HTML:

<div id="questions">
    <div id="answers" data-bind="template: { name: 'answerTmpl', foreach: interactive.answers }">
    </div>
</div>

<script type="text/javascript">

    app.viewModel.interactive.answers(@Html.Raw(@Model.Answers.ToJson()));
    app.interactive.updateBindings(document.getElementById('answers'));

</script>
<script id="answerTmpl" type="text/html">
<div>
  <span></span>  <input type="checkbox" name="Answer" />
</div>
</script>

Мой файл .js:

(function (app, $, undefined) {

    app.viewModel = {};
    app.interactive = {};
    app.interactive.callback = function () { };

 app.viewModel.interactive = {
        content: ko.observable('test'),
        answers: ko.observableArray()
    };

        app.interactive.init = function () {

        ko.applyBindings(app.viewModel);
    };

    app.interactive.updateBindings = function (element) {
        ko.applyBindingsToNode(element);
    };

    app.interactive.init();

})(window.app = window.app || {}, jQuery);

Я могу исправить с помощью приведенного ниже кода:

ko.applyBindingsToNode(element, null, app.viewModel);

Но теперь я получаю эту ошибку:

недопустимый 'in' операнд jQuery.template

if (templateId in jQuery['template']) 

Ответы [ 2 ]

9 голосов
/ 26 июля 2011

Я чувствую себя идиотом. Я даже не ссылался на скрипт шаблона jquery.

0 голосов
/ 26 июля 2011

Это выглядит немного запутанным.У вас есть app.viewModel.interactive , а затем app.interactive .Я мог бы что-то упустить, но не попробуете ли вы применить привязки к более простой модели пространства имен и поработать оттуда?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...