在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以获取最新版本