RSS Мои друзья Контакты

Best practisies в Knockout: упрощаем view

Одним из моих подручных инструментов для реализации single page application-ов стал Knockout. И я хочу поделится некоторыми трюками для написания хорошего кода с использованием этого чудесного фреймворка.

Введение Ruby::Rack

Как оказалось создание web приложения на Ruby без использования фреймворков, вроде Rails или Sinatra, не так уж просто. Для этого необходимо полностью реализовать поддержку протокола HTTP, т.е. написать парсер заголовков и тела запроса, а также отдавать результат клиенту при помощи обычной функции print. Но все же, не все так плохо и есть дорожка выстеленная благими намерениями - это Rack.

Создание custom байндингов в Knockout

Knockout позволяет расширять свой функционал, а это значит, что конечный пользователь не ограничен использованием только стандартных байндингов, таких как click, value, text, etc. Даже не используя своих сверхспособностей программиста, можно без особых усилий написать байндинг, который реализует стандартное grid поведение (сортировка, удаление, добавление, пейджинг).

Интернационализация в Magento

Мультиязычность уже давно стала обычным делом для сайтов направленных на международную аудиторию. Благодаря этому, пользователь может выбрать язык (соответственно и локализацию), которая больше подходит ему. В Magento вопрос интернационализации немного не очевиден, поэтому стоит рассмотреть его более детально

Обработка событий и работа с полями форм в Knockout

Никакое приложение не может быть востребованным и популярным, если оно не отвечает на действия пользователя. KO предоставляет ряд инструментов (байндингов) для обработки разных событий и управления полями формы.

Управляющие конструкции в KnockOut

По аналогии большинству языков программирования в Knockout реализованы основные управляющие конструкции: foreach, if, ifnot и with. foreach будет полезен при итерировании по массиву значений, if - для принятия какого-либо решения и with - для создания определенного контекста выполнения. Рассмотрим их более детально.

Байндинги в KnockOut: управление видимостью и содержимым

KO построен по принципам MVVM паттерна, т.е. предоставляет возможность изменять View посредством изменения ViewModel. А делает он это при помощи байндингов. Рассмотрим какие из них отвечают за управление видимостью и содержимым элементов

Наблюдаемые массивы в KnockOut

Теперь уже известно, что нужно использовать метод observable для свойства, чтобы иметь возможность отвечать на его изменения. Если же нужно реагировать на изменения в коллекции (массиве), то используюется observableArray

Составные наблюдатели в KnockOut

Что если одно из свойств View модели зависит от значения других? Опираясь на профессиональную лень предположу, что было бы хорошо, если бы оно пересчитывалось автоматически при изменении одного из свойств от которого зависит, без участия посторонних сил. Для этого в KnockOut и реализованы составные свойства

KnockOut - наблюдаем за всем и везде

О MVVM патерне, вокруг которого все крутится, уже упоминалось в предыдущей статье. В соответствии патерну, на котором построен фреймворк, Капитан Очевидность КО состоит из 3 основных частей: наблюдаемые свойства и зависимости, декларативные привязки (байндинги) и шаблоны (темплейтинг). В этот раз поговорим о наблюдаемых свойствах
1 2 3 4 5