Dojox / app保持模型与商店同步

时间:2014-08-25 14:37:43

标签: model-view-controller dojo dojox.mobile dojox.app

我目前正在使用dojox / app创建SPA,现在我开始添加商店和模型。我已经能够从json对象创建一个商店,从商店创建一个模型,并使用dojox mvc将字段绑定到模型。但是,我还有一些我还无法做到的事情:更新第二个模型,该第二个模型与第一个模型绑定到同一个商店。

我举一个例子。我有这个商店:

        win.global.modelApp = {}; 
        modelApp.names = {
            identifier: "id",
            items: [{
                "id": 1,
                "First": "John",
                "Last": "Doe",
            },{
                "id": 2,
                "First": "John2",
                "Last": "Doe",
            }]
        }

然后我在config.json文件中使用此存储创建两个模型:

"stores": {
    "namesStore":{
        "type": "dojo/store/Memory",
        "params": {
            "data": "modelApp.names"
        }
    }
},

"models": {
    "namesXUnused": {
        "modelLoader": "dojox/app/utils/mvcModel",
        "type": "dojox/mvc/EditStoreRefListController",
        "params":{
            "store": {"$ref":"#stores.namesStore"}
        }
    },
    "namesXUnused2": {
        "modelLoader": "dojox/app/utils/mvcModel",
        "type": "dojox/mvc/EditStoreRefListController",
        "params":{
            "store": {"$ref":"#stores.namesStore"}
        }
    }
}

然后,在我的HTML文件中,我有一个绑定到namesXUnused(属性First)的字段,另一个绑定到namesXUnused2(属性First)的字段。当我编辑第一个字段时,我有一个按钮,将这些更改提交给商店。我可以通过调试器看到存储数据已正确更新。但是,我无法得到第二个字段来反映这些变化。有没有办法从商店刷新或重新创建模型?

谢谢,

1 个答案:

答案 0 :(得分:0)

我认为您需要设置“observable”:true,在商店中使用Observable商店,因为您希望将商店的更新反映回模型。如果你有问题,dojox / app / tests(以及dojox / mvc / tests)中有一些例子,但只是添加: “可观察的”:对你的名字来说,商店应该这样做。 “商店”:{     “namesStore”:{         “type”:“dojo / store / Memory”,         “可观察的”:是的,         “params”:{             “data”:“modelApp.names”         }     } },

此致 编