callStack
JavaScript call stack controller.
API
- callStack.add(ctx
:Object
, fn:String
, options:Object
) - callStack.wrap(fn
:Function
):Function
- callStack.wrap(ctx
:Object
, fn:String
):Function
- callStack.wrap(ctx
:Object
, fn:Function
):Function
- callStack.wrap(ctx
:Object
, fn:String
, options:Object
):Function
- callStack(name
:String
):Stack
— get call stack by name - callStack.order(firstName
:String
, secondName:String
[, etc]) - callStack.pause()
- callStack.unpause()
- callStack.clear(name
:String
) - callStack.override(ctx
:Object
, method:String
, callback:Function
):Function
Use case
var MyView = frameworkView callStack; var viewHeader = id: 'header' ;var viewContent = id: 'content' ;var viewFooter = id: 'footer' ; // (1) Somewhere in the code.viewHeadervisibilitytrue;viewContentvisibilitytrue;viewFootervisibilitytrue; // (2)viewFooter; // (!)viewHeader;viewContent; // (3)viewFootervisibilityfalse;viewFooter; // (!!)
Next tick: console
header.render
content.render
footer.render
header.vis: true
content.vis: true
footer.vis: true
footer.vis: false
callStack.override
var module = name: "callStack" { return thisname; }; module; // "callStack" // Owerride `toString` methodcallStack; module; // "[callStack]"
Options
Option:weight (default = 0)
var foo = callStack;var bar = callStack; ;;;;
Console:
foo: 1
foo: 2
bar: 1
bar: 2
Option:uniq
var foo = callStack;var bar = callStack; ;;;; ;;;;;
Console:
foo: 1
foo: 2
foo: 3
foo: 1
bar: 5