参数的使用

在data-page-id或ndoo.init中以url查询参数的形式设置参数,action中会接收到整个参数字符串。

1. page id中设置参数

<div id="scriptArea" data-page-id="home/index?abc">

2. 获取参数

indexAction: function(params){
  var $content;
  $content = $('#content');
  $content.html('module: home, action: indexAction param: ' + params);
}

此处params为字符串abc,ndoojs自运过滤掉了?(问号)

3.格式化参数

大多数情属性上带的参数相对简单,未进行格式化处理。如需格式化参数为key/value对象,可参考如下函数实现:

###[formatUrlParam] 格式化url参数 {{{###
formatUrlParam = (url = '') ->
  url = url.replace /^?/, ''
  paramObject = {}
  if url && url.length > 1
    urlparam = url.split('&')
  else
    urlparam = []

  for item in urlparam
    [key, value] = item.split '='
    if not key
      continue
    key = key.replace /[]$/, ''
    if value
      # fix 被传入unicode编码的情况
      if value.match(/%uw{4}/) isnt null
        value = value.replace /%uw{4}/g, (char) -> unescape char
      value = decodeURIComponent value
    else
      value = ''
    if _.has paramObject, key
      if _.isArray paramObject[key]
        paramObject[key].push value
      else
        paramObject[key] = [paramObject[key], value]
    else
      paramObject[key] = value

  paramObject
###}}}###
访问formatUrlParam.coffee以获取最新版本