abstract-state-router
Version:
The basics of a client-side state router ala the AngularJS ui-router, but without any DOM interactions
47 lines (43 loc) • 1.11 kB
JavaScript
function myArbitraryRenderFunction(parent, cb) {
var child = {}
var newObject = {
reset: function whatever() {},
getChildElement: function() {
return child
},
teardown: function() {
newObject.getChildElement = null
newObject.reset = null
newObject.teardown = null
}
}
setTimeout(function() {
cb(newObject)
}, 100)
}
module.exports = function makeRenderer(stateRouter) {
return {
render: function render(context, cb) {
var element = context.element
var template = context.template
myArbitraryRenderFunction(element, function(renderedTemplateApi) {
cb(null, renderedTemplateApi)
})
},
reset: function reset(context, cb) {
var renderedTemplateApi = context.domApi
var template = context.template
renderedTemplateApi.reset()
setTimeout(cb, 100)
},
destroy: function destroy(renderedTemplateApi, cb) {
renderedTemplateApi.teardown()
setTimeout(cb, 100)
},
getChildElement: function getChildElement(renderedTemplateApi, cb) {
setTimeout(function() {
cb(null, renderedTemplateApi.getChildElement('ui-view'))
}, 100)
}
}
}