Sha256: 28bf4610cb67ac5c87389e604ab29b06c1aa8f44c873c06c79b1f48d8694ad1b
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
(($, window)-> class Router @PART_REGEXP = /\(([^\(]+?)\)/ @PARAM_REGEXP = /:([a-z0-9_]+)/i constructor: (@elements, @options)-> @reinit(@elements) update_params: -> @params = Router.params(@elements) reinit: (elements)-> @elements = elements @elements.data('lazy_router', this) @update_params() @elements.off('change.lazy_router').on 'change.lazy_router', => @update_params() @options.onChange.call(@) if $.isFunction(@options.onChange) parse: (route)-> Router.parse(route, @params) @params: (elements)-> elements = $(elements) unless elements instanceof $ params = {} _params = elements.serializeArray?() if _params?.length > 0 for param in _params value = encodeURIComponent(param.value) params[param.name] = value if value?.length > 0 params # f.serializeArray().filter(function(i){return i['name']=='skill'})[0] @parse: (route, object={})-> parts = [] while _part = @PART_REGEXP.exec(route) curr = _part[1] # console.log 'part', _part[1] while curr? && (_param = @PARAM_REGEXP.exec(curr)) if object[_param[1]] != undefined # console.log 'replace', _param[0], object[_param[1]] curr = curr.replace(_param[0], object[_param[1]]) else # console.log 'remove', _param[0], _param[1] curr = undefined route = route.replace(_part[0], curr || "") route init = (params={})-> defaults = { } window.R = Router window.RR = new Router(this, $.extend(true, {}, defaults, params)) this $.fn['lazy_router'] = init )(jQuery, window)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
translation_cms-0.1.5 | app/assets/javascripts/writers/lazy_router.js.coffee |