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 に答える