feat(View): implement ProtoView.instantiate

This commit is contained in:
vsavkin
2014-10-27 11:47:13 -04:00
parent 79d270c3dd
commit 31831eee5e
7 changed files with 135 additions and 50 deletions

View File

@ -22,6 +22,7 @@ class ListWrapper {
static void set(m, k, v) { m[k] = v; }
static contains(m, k) => m.containsKey(k);
static map(list, fn) => list.map(fn).toList();
static filter(List list, fn) => list.where(fn).toList();
static find(List list, fn) => list.firstWhere(fn, orElse:() => null);
static any(List list, fn) => list.any(fn);
static forEach(list, fn) {

View File

@ -47,6 +47,9 @@ export class ListWrapper {
}
return null;
}
static filter(array, pred:Function) {
return array.filter(pred);
}
static any(list:List, pred:Function) {
for (var i = 0 ; i < list.length; ++i) {
if (pred(list[i])) return true;

View File

@ -9,6 +9,9 @@ class DOM {
static query(selector) {
return document.querySelector(selector);
}
static ElementList querySelectorAll(el, String selector) {
return el.querySelectorAll(selector);
}
static on(element, event, callback) {
element.addEventListener(event, callback);
}
@ -18,6 +21,12 @@ class DOM {
static setInnerHTML(el, value) {
el.innerHtml = value;
}
static Node firstChild(el) {
return el.firstChild;
}
static List<Node> childNodes(el) {
return el.childNodes;
}
static setText(Text text, String value) {
text.text = value;
}

View File

@ -1,23 +1,34 @@
export var DocumentFragment = window.DocumentFragment;
export var Node = window.Node;
export var NodeList = window.NodeList;
export var Text = window.Text;
export var Element = window.HTMLElement;
export var TemplateElement = window.HTMLTemplateElement;
import {List} from 'facade/collection';
export class DOM {
static query(selector) {
return document.querySelector(selector);
}
static querySelectorAll(el, selector:string):NodeList {
return el.querySelectorAll(selector);
}
static on(el, evt, listener) {
el.addEventListener(evt, listener, false);
}
static getInnerHTML(el) {
return el.innerHTML;
}
static firstChild(el):Node {
return el.firstChild;
}
static childNodes(el):NodeList {
return el.childNodes;
}
static setInnerHTML(el, value) {
el.innerHTML = value;
}
static setText(text:Text, value:String) {
static setText(text:Text, value:string) {
text.nodeValue = value;
}
static createTemplate(html) {