0

我目前正在使用 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(property First) 的字段,另一个绑定到namesXUnused2(property First)。当我编辑第一个字段时,我有一个将这些更改提交到商店的按钮。我可以通过调试器看到存储数据已正确更新。但是,我无法让第二个字段反映更改。有没有办法从商店刷新或重新创建模型?

谢谢,

4

1 回答 1

0

我认为您需要在商店上设置 "observable": true 以使用 Observable 商店,因为您希望将商店的更新反映回模型。如果您有问题,dojox/app/tests(和 dojox/mvc/tests)中有示例,但只需在您的 namesStore 中添加:“observable”:true 即可。"stores": { "namesStore":{ "type": "dojo/store/Memory", "observable": true, "params": { "data": "modelApp.names" } } },

问候, 埃德

于 2014-08-26T12:30:20.467 回答