0
我有一個列表顯示在我的頁面上的測試對象,我希望能夠使用微風向這個列表添加新的實體。微風創建實體,本地更新
,我做的第一件事是黃金從服務器使用下面的代碼當前數據:
var getTestObjects = function (testObjects) {
var query = EntityQuery.from('TestObject');
return manager.executeQuery(query)
.then(querySucceeded)
.fail(queryFailed);
function querySucceeded(data) {
if (testObjects) {
testObjects(data.results);
}
datacontext.testObjects = getLocal('TestObject');
};
};
function getLocal(resource) {
var query = EntityQuery.from(resource);
return manager.executeQueryLocally(query);
}
接下來,我呼籲對象的創建方法:
var createTestObject = function (initialValues) {
var testObjectType = manager.metadataStore.getEntityType("TestObject");
var newTestObject = testObjectType.createEntity(initialValues);
return manager.addEntity(newTestObject);
};
datacontext.createTestObject({ name: 'test' });
datacontext.saveChanges();
所有這些作品罰款和實體被添加到數據庫,但是當我呼叫datacontext.testObjects
(本地可用的實體),它沒有新添加的項目。如果這個可用或者我必須再次從服務器獲取數據?
另外創建一個新的實體OP應該使用manager.createEntity( '實體名稱',{性質}); –
實際上,如果testObjectType是一個EntityType,那麼調用EntityType.createEntity方法應該沒問題。 http://www.breezejs.com/sites/all/apidocs/classes/EntityType.html#method_createEntity –
對不起,我應該更清楚 - datacontext是我的viewmodel,所以datacontext.textobjects調用manager.executeQueryLocally。沒有意識到getEntities存在!非常感謝! – kiwijus