dojox mvc repeat と group を使って dojox mobile アコーディオンを作ってみました。dojox.mvc.Repeat の data-dojo-props で removeRepeatNode:true を使用しようとしたところ、JS エラーが発生しました。
dojo/parser::parse() エラー TypeError: b._at は未定義です
Dojo 1.9を使用しています
これに関して誰も助けることができますか?
dojox mvc repeat と group を使って dojox mobile アコーディオンを作ってみました。dojox.mvc.Repeat の data-dojo-props で removeRepeatNode:true を使用しようとしたところ、JS エラーが発生しました。
dojo/parser::parse() エラー TypeError: b._at は未定義です
Dojo 1.9を使用しています
これに関して誰も助けることができますか?
Dojo-interest メーリング リストで同じ質問を見ました。dojox/mvc/Repeatは非推奨のモジュールです。dojox/mvc/WidgetListがそれに取って代わります。
以下のコードは、dojox/mobile/Accordionをdojox/mvc/WidgetListで使用する方法を示しています。
<!DOCTYPE html>
<html>
<head>
<title>Accordion</title>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/dojo/1.9.0/dojox/mobile/deviceTheme.js"
data-dojo-config="mblThemeFiles: ['base', 'Accordion']"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/dojo/1.9.0/dojo/dojo.js"
data-dojo-config="async: 1, parseOnLoad: 0"></script>
<script type="text/javascript">
require([
"dojo/_base/declare",
"dojox/mvc/at",
"dojox/mobile/parser",
"dojox/mobile/Accordion",
"dojox/mvc/WidgetList",
"dojox/mvc/Output",
"dojox/mvc/_InlineTemplateMixin",
"dojox/mobile",
"dojox/mobile/ContentPane"
], function(declare, at, parser, Accordion){
declare("my.Accordion", Accordion, {
addChild: function(widget, index){
this.inherited(arguments, [widget, index * 2]);
}
})
window.at = at;
window.model = [
{title: "foo", content: "Foo", selected: true},
{title: "bar", content: "Bar"},
{title: "baz", content: "Baz"}
];
parser.parse();
});
</script>
</head>
<body>
<div data-dojo-type="my.Accordion"
data-dojo-mixins="dojox/mvc/WidgetList,dojox/mvc/_InlineTemplateMixin"
data-dojo-props="children: model"
data-mvc-child-type="dojox/mobile/ContentPane"
data-mvc-child-mixins="dojox/mvc/Templated"
data-mvc-child-props="label: at(this.target, 'title'), selected: at(this.target, 'selected')">
<script type="dojox/mvc/InlineTemplate">
<div>
<span data-dojo-type="dojox/mvc/Output"
data-dojo-props="value: at('rel:', 'content')"></span>
</div>
</script>
</div>
</body>
</html>
いくつかのトリックは次のとおりです。
詳細については、メーリング リストの返信を参照してください。
ベスト、アキラ