• KnockoutJS: сказ о том, как легко принимать или отклонять изменения

      Довольно часто в пользовательском интерфейсе есть кнопки «Сохранить» и «Отмена». Особенно часто эти кнопки используются в формах. Несмотря на то, что в современном мире всё идёт к упрощению интерфейса, но на эти кнопки всё равно есть спрос.

      Сегодня я предлагаю разобраться как с помощью KnockoutJS принимать и откатывать изменения для индивидуальных observables так и целых view models.

      Знакомые с KnockoutJS сразу могут выдать две ссылки на лучший блог о сабже

      У этих методов есть как плюсы, так и вполне существенные недостатки, от которых нужно избавлятся. Недостатки с функциональной точки зрения
      • Dirty flag — не позволяет сохранять изменения, а только сбросить их в начальное состояние.
      • protectedObservable — никто не видит изменений observable до тех пор, пока не произойдёт commit. Это ограничение сильно удручает при использовании dependent observables, к примеру.

      Ну и к тому же, они нацелены на индивидуальные observable'ы, а хотелось бы работать с несколькими полями сразу.

      Под катом детально разберём процесс создания простого механизма, который сделает работу с принятием и отменой изменений простой и прозрачной.

      Читать дальше →
    • KnockoutJS: Ajax grid view с нуля в 40 строк

        В последнее время на Хабре все больше упоминаний о KnockoutJS, и я не останусь в стороне от этого тренда.
        Сегодня я расскажу о том как сделать своими руками Ajax Grid View с фильтрацией и переходом по страницам написав, при этом, совсем немного кода.
        Начиная писать эту статью я чувствовал себя несколько неловко, да и сейчас ощущение не ушло. Все дело в том, что сама библиотека простая, паттерн MVVM простой, и рассказывать я буду простые вещи. Я уверен, что в ближайшее время Knockout получит достаточно большое распространение. А неловко мне от того, что уже через год-дугой кто-то наткнувшись на эту статью будет обескуражен простотой изложенного материала. Примерно так, как любой из вас сейчас, открывший статью о jQuery от 2007 года.

        Кто не испугался предполагаемого баяна, милости прошу под хабракат.

        Читать дальше →
      • Введение в MVVM и KnockoutJS (видео)

          В своей статье о фильтрации списков на Knockout я упоминал, что читал доклад о MVVM и KnockoutJS на .NET Saturday в Днепропетровске.

          Совсем недавно подоспело видео и я спешу им поделиться. Хочу заранее немного оправдаться — поначалу я немного тараторил, но потом вошёл в ритм и вроде как всё было достойно.

          Сам доклад разделён на 2 части:
          1. рассказ о MVVM с разбором практического примера, как сей паттерн может облегчить жизнь при разработке UI
          2. написание простенького приложения на Knockout в live-режиме. Эта часть доклада всем понравилась больше чем первая, но за несколько моих «затупов» я до сих пор краснею :-)


          Посмотреть видео доклада

          PS 1: слайды можно скачать тут: bit.ly/qX61m2
          PS 2: если вдруг кому нужны исходники демо-проекта — я выложу. Но их как минимум причесать надо
        • KnockoutJS: Фильтрация списков на лету

            В минувшую субботу я имел честь читать доклад о MVVM и KnockoutJS на .NET Saturday в Днепорпетровске.
            Доклад был достаточно тепло встречен публикой и у многих появились интересные вопросы,
            которые не были раскрыты во время самого доклада.
            Собственно говоря, я решил написать публичные ответы на некоторые из них на Хабре.

            Сегодня я отвечу на вопрос о template-binding. «Как быть, если мне надо отобразить не все записи, а только подходящие определённым условиям».

            Ответ находится под хабракатом.
            Читать дальше →
            • +29
            • 10.8k
            • 7