Skip to content

Instantly share code, notes, and snippets.

View zaparker's full-sized avatar

Zachary Parker zaparker

View GitHub Profile
@zaparker
zaparker / array.extend.js
Last active January 27, 2016 04:41
Based on the LINQ extensions for C# IEnumerables, these functions extend the base JavaScript Array object with new methods for chaining together array operations. Also includes some examples and tests.
// performs the specified action on each item in the array
Array.prototype.forEach = function (fnAction) {
var l = this.length;
for (var i = 0; i < l; ++i) {
fnAction(this[i]);
}
}
// returns an array containing the items matching the filter
Array.prototype.where = function (fnFilter) {
@zaparker
zaparker / KnockoutBootstrapTooltipBinding
Last active August 29, 2015 14:09
Knockout Bootstrap Tooltip Binding
ko.bindingHandlers.tooltip = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var value = valueAccessor();
var valueUnwrapped = ko.unwrap(value);
if (valueUnwrapped.text != null)
{
$(element).attr('title', valueUnwrapped.text);
if (valueUnwrapped.alignment != null) {
$(element).attr('data-placement', valueUnwrapped.alignment);
}
@zaparker
zaparker / KnockoutBootstrapModalBinding
Last active August 29, 2015 14:10
Custom knockout binding for the Bootstrap modal plugin. Includes bindings to the modal options, all the modal events, and an extra 'visible' binding to toggle the modal.
ko.bindingHandlers.modal = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var value = valueAccessor();
var valueUnwrapped = ko.unwrap(value);
var options = valueUnwrapped.options;
options.show = valueUnwrapped.visible && ko.unwrap(valueUnwrapped.visible);
$(element).modal(options);
$(element).on('show.bs.modal', function() {
if(valueUnwrapped.visible) {
if(typeof(valueUnwrapped.visible) === 'function') valueUnwrapped.visible(true);