Parsing issue
Problem when parsing declarative scripts inside a TabContainer.
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.8.0/dojo/resources/dojo.css">
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.8.0/dijit/themes/claro/claro.css">
<script type="dojo/require">
ioQuery : "dojo/io-query",
lang : "dojo/_base/lang"
</script>
<div data-dojo-type="dijit/layout/BorderContainer" class="main">
<div id="theTabs" data-dojo-type="dijit/layout/TabContainer" data-dojo-props="region:'center'">
<div data-dojo-type="dijit/layout/ContentPane" title="tab1" href="/echo/html/"></div>
<div data-dojo-type="dijit/layout/ContentPane" title="tab2">Some contents</div>
<script type="dojo/method" data-dojo-event="setSelectedChildWidget" data-dojo-args="hrefFragment">
console.debug("Starting",this);
var fragmentToMixObject = ioQuery.queryToObject(hrefFragment.slice(hrefFragment.indexOf('?') + 1));
console.debug("fragment to mix ", fragmentToMixObject);
var currentHrefFull = this.selectedChildWidget.get("href");
console.debug("currentHrefFull :",currentHrefFull);
var currentHrefRel = currentHrefFull.slice(currentHrefFull.indexOf('?') + 1);
var currentHref = ioQuery.queryToObject(currentHrefRel);
var mixed = ioQuery.objectToQuery(lang.mixin(currentHref, fragmentToMixObject));
console.debug("Mixed url ", mixed);
this.selectedChildWidget.set('href', mixed);
console.debug("Finished");
</script>
</div>
</div>
CSS
body, html, .main {
height : 100%;
width : 100%;
}
JavaScript
require(["dojo/parser",
"dijit/registry"], function(parser, registry) {
parser.parse().then(function(instances){
registry.byId("theTabs").setSelectedChildWidget("?delay=2&html=hello");
});
});