dojox.dtl._Filter.resolvePath
dojo.require("dojox.dtl._base");
defined in dojox/dtl/_base.js
Usage
function (path, context) (view source)
var current, parts; var first = path.charAt(0); var last = path.slice(-1); if(!isNaN(parseInt(first))){ current = (path.indexOf(".") == -1) ? parseInt(path) : parseFloat(path); }else if(first == '"' && first == last){ current = path.slice(1, -1); }else{ if(path == "true"){ return true; } if(path == "false"){ return false; } if(path == "null" || path == "None"){ return null; } parts = path.split("."); current = context.get(parts[0]); for(var i = 1; i < parts.length; i++){ var part = parts[i]; if(current){ if(dojo.isObject(current) && part == "items" && typeof current[part] == "undefined"){ var items = []; for(var key in current){ items.push([key, current[key]]); } current = items; continue; } if(current.get && dojo.isFunction(current.get)){ current = current.get(part); }else if(typeof current[part] == "undefined"){ current = current[part]; break; }else{ current = current[part]; } if(dojo.isFunction(current)){ if(current.alters_data){ current = ""; }else{ current = current(); } } }else{ return ""; } } } return current;
parameter | type | description |
---|---|---|
path | ||
context |