0

我想创建敲除计算函数,该函数将使用微风方法进行 ajax 调用,并根据实体类型检索所有记录,如下所示。

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。即使认为它已在与 durandal 相同的文件中正确注册

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;
});

请让我知道任何建议。

4

2 回答 2

0

在做了更多调查之后,我已经实现了服务器端查询以返回相关对象(子对象),然后创建计算来访问它,并在视图中使用敲除绑定。

于 2013-08-08T07:18:02.963 回答
0

我找到了解决方案!在 services 文件夹下创建一个名为 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();
});

定义时在 sheel.js 中添加“services\logger”。这个更干净

于 2013-08-19T18:07:43.543 回答