2013-06-06 48 views
0

我想創建一個knockout計算函數,它將使用breeze方法執行ajax調用,並根據實體類型檢索所有記錄,如下所示。我可以在微風和durandal模型中訪問datacontext嗎?

standardResourceProperty.listItems = ko.computed({ 
     read: function() { 
      listObsevable = ko.observableArray(); 
      datacontext.getStandardResourcePropertyListItems(standardResourceProperty.id(),listObsevable); 
      return listObsevable; 
     }, 
     write: function (value) { 

     } 
    }); 

功能是內部standardResourcePropertyInitializer寫入了初始化與

metadataStore.registerEntityTypeCtor(
     'StandardResourceProperty', function() { this.isPartial = false; }, standardResourcePropertyInitializer); 

我想有列表,當我在UI迭代標準資源與基因敲除每個。

但是,我得到datacontext爲undefined。甚至認爲它與迪朗達爾正確註冊在同一個文件

define(['config', 'durandal/system', 'services/logger', 'services/datacontext'], 
function (config, system, logger,datacontext) { 

我的數據上下文的代碼看起來像下面

define([ 
'durandal/system', 
'services/model', 
'config', 
'services/logger', 
'services/breeze.partial-entities'], 
function (system, model, config, logger, partialMapper) { 

var datacontext = { 
     getResources: getResources, 
     cancelChanges: cancelChanges, 
     saveChanges: saveChanges, 
     getStandardResourceProperty: getStandardResourceProperty, 
     getStandardResourcePropertyListItems: getStandardResourcePropertyListItems, 
     getResourceProperty: getResourceProperty, 
     createResource: createResource, 
    }; 

    return datacontext; 
}); 

請讓我知道任何建議。

+1

你的datacontext服務是怎樣的?有可能您沒有從中返回對象實例。 –

+0

Nop那不是那種情況下,因爲它在我的viewmodels它正在被正確檢索。但是,對於給定的情況,我想通過使用datacontext來構建我的模型。所以我不知道爲什麼datacontext與model不能正常工作,它與viewmodel – parth1729

+0

@ parth1729一起工作你可以編輯你的文章並添加你的數據上下文代碼嗎? – CodingGorilla

回答

0

在做了一些更多的調查後,我實現了服務器端查詢以返回相關對象(子對象),然後創建計算以便在視圖中使用敲除綁定進行訪問。

0

我找到了解決方案! 在sheel.js服務文件夾下創建一個名爲binding.js新文件

define(['services/logger', 'services/datacontext'], function (logger, datacontext) { 
    logger.log('about to do binding'); 
    YOUR KO CODE 
    datacontext.createTimeSlotWithValue({ 
        description: 'descrizione da drop' 
       }); 
       datacontext.saveChanges(); 
}); 

添加「服務\記錄器」,當你定義它。這是更清潔

相關問題