source: Dev/trunk/src/client/dojox/mvc/resolve.js @ 485

Last change on this file since 485 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 1.2 KB
Line 
1define([
2        "dojo/_base/lang",
3        "dijit/registry",
4        "dojo/Stateful"
5], function(lang, registry){
6        var resolve = function(/*dojo/Stateful|String*/ target, /*dojo/Stateful?*/ parent){
7                // summary:
8                //              Find a dojo/Stateful for the target.
9                // description:
10                //              If target is not a string, return target itself.
11                //              If target is "widget:widgetid", returns the widget whose ID is widgetid.
12                //              If target is "rel:object.path", or target is other string, returns an object under parent (if specified) or under global scope.
13                // target: dojo/Stateful|String
14                //              The data binding to resolve.
15                // parent: dojo/Stateful?
16                //              The parent data binding. Used when the data binding is defined inside repeat.
17
18                if(typeof target == "string"){
19                        var tokens = target.match(/^(expr|rel|widget):(.*)$/) || [];
20                        try{
21                                if(tokens[1] == "rel"){
22                                        target = lang.getObject(tokens[2] || "", false, parent);
23                                }else if(tokens[1] == "widget"){
24                                        target = registry.byId(tokens[2]);
25                                }else{
26                                        target = lang.getObject(tokens[2] || target, false, parent);
27                                }
28                        }catch(e){}
29                }
30
31                return target; // dojo/Stateful
32        };
33
34        // lang.setObject() thing is for back-compat, remove it in 2.0
35        return lang.setObject("dojox.mvc.resolve", resolve);
36});
Note: See TracBrowser for help on using the repository browser.