Skip to content

Instantly share code, notes, and snippets.

@houoop
houoop / knock-paging-extend.js
Created January 9, 2013 10:20
knockout paging extend
ko.extenders.paging = function (target, pageSize) {
var _pageSize = ko.observable(pageSize || 10), // default pageSize to 10
_currentPage = ko.observable(1); // default current page to 1
target.pageSize = ko.computed({
read: _pageSize,
write: function (newValue) {
if (newValue > 0) {
_pageSize(newValue);
}
@houoop
houoop / observable-filter.js
Created January 9, 2013 09:17
observableArray filter prototype extend
ko.observableArray.fn.filterByProperty = function(propName, matchValue) {
return ko.computed(function() {
var allItems = this(), matchingItems = [];
for (var i = 0; i < allItems.length; i++) {
var current = allItems[i];
if (ko.utils.unwrapObservable(current[propName]) === matchValue)
matchingItems.push(current);
}
return matchingItems;
}, this);
@houoop
houoop / knockout-array-filter.js
Created January 9, 2013 05:14
Knockout Array Filter
var match = ko.utils.arrayFirst(self.dialogboxArray(), function(item) {
return newMessage.target === item.name;
});
@houoop
houoop / image type filter
Created November 21, 2012 10:26
js:image-upload-type-filter
if (!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(ths.value)) {
alert("你选择的不是图片文件");
ths.value = "";
return false;
}