javascript - 在 Dojo 中从 Json 创建动态页面

标签 javascript html json mobile dojo

我有一个json文件

{
    Introduction: 
    [
        {
            title:   "Introduction",
            toolbar: "Page 1",
            content: "cont, aabitant morbi tristique..."
        },
        {
            title:   "about",
            toolbar: "Page 2",
            content: "contesent vel nisi ipsum..."
        },
        {
            title:   "services",
            toolbar: "Page 3",
            content: "Cras adipiscing sapien nec..."
        }
    ]
}

我想在 Dojo 移动版中创建动态页面。从上面的 Json 中可以前后移动创建三个页面。我遇到了问题。我正在阅读 Json 作为:

  dojo.xhrPost({
        url: "start.json",
        handleAs: "json",
            var viewContainer = new dojox.mobile.ScrollableView({id:"viewContainer"});
        load: function(response) {
            for (key in response){
                        // creating each view heading and content here.........
                        //can you give some hint what should be here?
                    }
        }

我如何读取上面的 json 并创建动态 View 。代码中的这一行可以替换什么 //你能给出一些提示吗?

最佳答案

首先,您以错误的方式读取 json。 dojo.xhrPost 会将数据发送到您在 url 参数中指定的 url:不会检索 url 参数中的文件。如果你按照你现在的方式去做,你最终会得到一个错误,比如“无法加载 start.json status:500”

因此,在您的情况下,要读取文件,您应该改为执行 dojo.xhrGet。

接下来,您的 viewContainer 变量不应像那样放置在参数的中间(您正在编写混合在对象属性中间的代码 (!!!))。

所以......你应该能够通过做这样的事情来完成你想要的:

require(["dojo/dom-construct", 
    "dojo/_base/xhr", 
    "dojox/mobile/parser", 
    "dojox/mobile", 
    "dojox/mobile/ScrollableView", 
    "dojox/mobile/Heading"],
            function(domConstruct) {

                dojo.xhrGet({
                    url : 'start.json',
                    handleAs : "json",
                    load : function(response) {

                        dojo.forEach(response.Introduction, function(page){
                            var node = domConstruct.create("div", {id : page.title}, "viewsContainer", "last");
                            var view = new dojox.mobile.ScrollableView({
                                id : page.title
                            }, node);
                            view.addChild(new dojox.mobile.Heading({label : page.title}));
                            view.startup();
                        });
                    },
                    error : function(err) {
                        console.debug("Error : ", err);
                    }
                });
            }
        );

关于javascript - 在 Dojo 中从 Json 创建动态页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8530364/

相关文章:

javascript - 如何覆盖错误堆栈 getter

javascript - 使用 functions.config().firebase 初始化时如何包含我的 firebase 服务帐户 key ?

html - 页面在链接提交上移动

javascript - Rails View 中的 Json 对象

json - 如何使用 papa-parse-angular2

javascript - 样式加载器不适用于 Webpack2

javascript - 我需要一个脚本来检测所有浏览器上的所有长按或连续按键

php - 使用 PHP 在动态创建表格中应用表格样式

javascript - 如何使标题元素的宽度向左缓慢移动

javascript - parse error callback function not called jquery ajax 错误?