Skip to content

Instantly share code, notes, and snippets.

View PatrickJS's full-sized avatar
💻
codex coding

PatrickJS PatrickJS

💻
codex coding
View GitHub Profile
@davideast
davideast / index.ts
Created April 15, 2015 17:25
Simple Angular 2 Forms with Firebase
import {bootstrap, Component, Decorator, View, If, For, EventEmitter} from 'angular2/angular2';
import {FormBuilder, Validators, FormDirectives, ControlGroup} from 'angular2/forms';
@Component({
selector: 'app',
injectables: [FormBuilder]
})
@View({
template: `
<div class="container" [control-group]="myForm">
/*
The MIT License (MIT)
Copyright (c) 2014
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
@shuhei
shuhei / 1_before.js
Last active August 29, 2015 14:17
Angular 2 annotation with babel (babel --experimental with experimental branch)
import {Component as _Component, Template as _Template} from 'angular2/src/core/annotations/annotations';
function makeDecorator(annotationClass) {
return (options) => {
return (klass) => {
klass.annotations = klass.annotations || [];
klass.annotations.push(new annotationClass(options));
return klass;
};
};
@cameron
cameron / README.md
Last active August 29, 2015 14:16
angular.module().view()

ng.module.view

module.view() is a deliberately half-baked attempt at implementing a web components pattern in angular.

It began as a convenience wrapper on module.directive() to avoid specifying the templateUrl in a context where the templateUrl is derivable from the name of the view.

It also allows views to be included via expression (see example below), which is useful for routing, modals, and other dynamic view inclusion.

Defining a widget with a controller

@PatrickJS
PatrickJS / ngExam.answer.27.js
Last active January 10, 2017 15:55
You would put ui logic inside of services since you need to be able to reuse them. The idea is that you can reuse your service across different apps whether it be a web app or mobile app (ionic framework).
angular.module('swag', [])
.controller('MainController', function(MyApi) {
$scope.submit = function(data) {
MyApi.get(data).then(function(data) {
// redirect or some action here
alert(data);
})
.catch(function(err) {
// ui logic belogs here
alert(err);
@nolanlawson
nolanlawson / rant.md
Last active March 1, 2023 23:34
Misconceptions about PouchDB

Misconceptions about PouchDB

A quick rant.

  1. PouchDB is slow, because it doesn't use bare-metal IndexedDB

OK, first off I want to point out the CanIUse table for IndexedDB. Go ahead, look at it. I'll wait.

Folder Structure

Please note

While this gist has been shared and followed for years, I regret not giving more background. It was originally a gist for the engineering org I was in, not a "general suggestion" for any React app.

Typically I avoid folders altogether. Heck, I even avoid new files. If I can build an app with one 2000 line file I will. New files and folders are a pain.

@ericelliott
ericelliott / essential-javascript-links.md
Last active April 30, 2026 08:09
Essential JavaScript Links
@PatrickJS
PatrickJS / factory-shared.es5.js
Last active May 17, 2024 03:37
Different examples of OOP "class" with "inheritance" done using JavaScript including languages that transpile into js. Take notice to the amount of boilerplate that's needed in ES5 compared to ES6. These examples all have the same interface with pros/cons for each pattern. If they seem similar that's whole point especially the difference between…
var EventEmitter = require('events').EventEmitter;
var _ = require('lodash');
// Factory shared
var makePerson = function() {
var person = {};
EventEmitter.call(person);
person.wallet = 0;
_.extend(person, personMethods)
return person;
@iladarsda
iladarsda / karma.conf.js
Last active August 29, 2015 14:09
AngularJS/TDD: Sample Karma config file
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine'],
files: [
// lib
'./app/lib/angular/angular.js',
'./app/lib/**/angular-*.js',