Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Knockout как-то странно подставляет данные (https://javascript.ru/forum/library-toolkit-framework/65273-knockout-kak-stranno-podstavlyaet-dannye.html)

senglory 09.10.2016 15:54

Knockout как-то странно подставляет данные
 
Вот моя разметка
<div id="ctlAlert" class="alert error-message">

<ul id="ctlAlertUL" data-bind="foreach: allErrors">

<li data-bind="text: $data" class="text-danger"></li>

</ul>

</div>



<button id="btnErr1">Err1</button>

<button id="btnErr2">No ERR</button>


Вот код:
Код:

<script>





        $(document).ready(function () {



var ErrorsListModel = function (items) {

        var self = this;

        self.allErrors = ko.observableArray(items);

        self.hasErrors = ko.computed(function () {

            return self.allErrors().length > 0;

        });

    }



   

    $("#btnErr1").click(function (evt)

    {

ko.cleanNode($("#ctlAlertUL")[0]);

      var rt = '["msg1", "msg2"]';

      var ve = $.parseJSON(rt);

      ko.applyBindings(new ErrorsListModel(ve), $("#ctlAlertUL")[0]);

    });





    $("#btnErr2").click(function (evt)

    {

ko.cleanNode($("#ctlAlertUL")[0]);

      var rt = '[]';

      var ve = $.parseJSON(rt);

      ko.applyBindings(new ErrorsListModel(ve), $("#ctlAlertUL")[0]);

    });



});



    </script>

1. Кликаю на Err1 несколько раз и список с сообщениями разрастается.

2. Кликнул на NoERR, список очистился. После этого кликаю на Err1 — никаких сообщений больше не добавляется.

Что я делаю не так?


Часовой пояс GMT +3, время: 07:41.