Это то, что вы могли бы сделать с Knockout.js. KO не обязательно должна быть заменой для jQuery, а более высокого уровня, чтобы помочь с привязкой к модели и представлению (т. Е. VMMV). jQuery по-прежнему отлично подходит для анимации, и, самое главное, AJAX звонит. В зависимости от того, что вы делаете, KO и jQuery могут хорошо ладить.
KO может быть трудно оторвать голову, но как только вы это сделаете, это довольно удивительно, и некоторые вещи просты. Например, я столкнулся только раздел, где вы нажимаете на день недели и его отображения:
http://codepen.io/CWSpear/pen/IbkvJ
Если ничего не проверяли, ничего не показывает, но как только вы начинаете проверять вещи, это показывает, что дни (т.е. Weekly on Thursday
).
JavaScript - это всего лишь несколько строк. Магия привязок:
Каждый вход имеет атрибут data-bind="checked: days"
, что означает, когда они проверены, они будут автоматически добавляются в days
переменной в моей ViewModel, которая является ko.observeableArray
. Это означает, что он смотрит эти флажки, и как только произойдет изменение, он будет уведомлять все, что от него зависит.
Которая, как оказалось, переменная summary
, которая является ko.computable
(которая является вычислимой наблюдаемой). Он имеет атрибут: data-bind="text: summary, visible: days().length > 0"
. Это означает, что это видно только в том случае, если days
непусто, а текст определен в нашем javascript как «Еженедельно в [список days
]».