Go to Sublime Text 2 > Preferences > Key Bindings - User
and add this JSON to the file:
[
{ "keys": ["super+shift+l"],
"command": "insert_snippet",
"args": {
"contents": "console.log(${1:}$SELECTION);${0}"
}
}
ko.extenders.deferred = function(targetObservable, startingVal) { | |
//create a writeable computed observable to intercept writes to our observableo | |
targetObservable.loading = ko.observable(startingVal); | |
targetObservable.promise = function(x){ | |
targetObservable.loading(true); | |
targetObservable.deferred = x; | |
x.done(function(returnedTarget){ | |
targetObservable(returnedTarget); | |
targetObservable.loading(false); |
!function(ko){ | |
"use strict"; | |
// var modalElement = "#modal"; | |
var addHiddenDivToBody = function() { | |
var div = document.createElement("div"); | |
div.id = "modal"; | |
document.body.appendChild(div); | |
$(div).text("goodbye"); |
<snippet> | |
<content><![CDATA[<script src="//ajax.googleapis.com/ajax/libs/jquery/${1:1.9.1}/jquery.min.js"></script>$0]]></content> | |
<tabTrigger>jquery</tabTrigger> | |
<description>Google CDN: jQuery</description> | |
<scope>text.html</scope> | |
</snippet> |
<snippet> | |
<content> | |
<![CDATA[ | |
<!-- ko ${1:if: true} --> | |
${2} | |
<!-- /ko --> | |
]]> </content> | |
<tabTrigger>ko:v</tabTrigger> | |
<scope>text.html.basic</scope> |
Go to Sublime Text 2 > Preferences > Key Bindings - User
and add this JSON to the file:
[
{ "keys": ["super+shift+l"],
"command": "insert_snippet",
"args": {
"contents": "console.log(${1:}$SELECTION);${0}"
}
}
<snippet> | |
<content><![CDATA[ | |
!function(modelPageView){ | |
"use strict" | |
var ${1:obj_name} = function(){ | |
this.init() | |
} | |
${obj_name}.prototype = { | |
constructor: ${1:obj_name} |
ko.bindingHandlers.fileUpload = { | |
update: function(element, valueAccessor, allBindingsAccessor){ | |
var value = ko.utils.unwrapObservable(valueAccessor()) | |
if(element.files.length && value){ | |
var file = element.files[0]; | |
var url = allBindingsAccessor().url | |
xhr = new XMLHttpRequest(); | |
xhr.open("post", url, true); |
ko.bindingHandlers.filePreview = { | |
update: function(element, valueAccessor, allBindingsAccessor){ | |
var allBindings = allBindingsAccessor() | |
if(!!FileReader && valueAccessor() && element.files.length){ | |
var reader = new FileReader(); | |
reader.onload = function(event){ | |
var dataUri = event.target.result | |
allBindings.imagePreview(dataUri) | |
} | |
reader.onerror = function(e) { |
$(window).on('scroll.loader', function() { | |
if ($(document).height() - 30 <= $(window).height() + $(window).scrollTop()) { | |
// your go off and get html to append | |
} | |
} |
ko.bindingHandlers.scroll = { | |
updating: true, | |
init: function(element, valueAccessor, allBindingsAccessor) { | |
var self = this | |
self.updating = true; | |
ko.utils.domNodeDisposal.addDisposeCallback(element, function() { | |
$(window).off("scroll.ko.scrollHandler") | |
self.updating = false |