0

これは knockout.dirtyFlag.js からのものです

;(function (ko) {
        ko.DirtyFlag = function (objectToTrack, isInitiallyDirty, hashFunction) {

            hashFunction = hashFunction || ko.toJSON;

            var
                _objectToTrack = objectToTrack,
                _lastCleanState = ko.observable(hashFunction(_objectToTrack)),
                _isInitiallyDirty = ko.observable(isInitiallyDirty),

                result = function () {
                    var self = this;

                    self.isDirty = ko.computed(function () {
                        return _isInitiallyDirty() || hashFunction(_objectToTrack) !== _lastCleanState();
                    });

                    self.reset = function () {
                        _lastCleanState(hashFunction(_objectToTrack));
                        _isInitiallyDirty(false);
                    };

                    return self;
                };

            return result;
        };
    })(ko);

私のモデルでは、次のような定義設定があります。

define([
    "lib/knockout",
    "lib/knockout.dirtyFlag"
],
function(ko) {
...
  self.dirtyFlag = new ko.DirtyFlag([
}

基本的に、DirtyFlag が未定義であるというエラーが表示されます。

私は何をする必要がありますか?

4

4 に答える 4

0

最後に、koliteクラスをdefineメソッドでラップしました。以下のコマンドの例ですが、他の例でも同じです。

requirejs.config({
paths: {
    knockout: 'Scripts/libs/knockout/knockout-2.2.1.debug',
    command: 'Scripts/libs/knockout/knockout.command'
},

shim: {
    knockout: {
        exports: 'ko'
    },
    command: {
        deps: ['knockout'],
        exports: 'ko'
    }
});

そしてラップされたコマンド

define(['knockout'], function(ko) {
  ... // command original code
  return ko;
)

私のモジュールで

define(['command'], function (ko) {
    var doYourStaff = 0;
    return doYourStaff;
});
于 2013-03-16T04:27:13.013 に答える
0

現在、3 つのライブラリすべてに RequireJS のサポートが追加されており、masterから最新バージョンを使用できます。

于 2013-12-28T11:09:03.557 に答える
0

lib/knockout と lib/knockout.dirtyFlag が必要です。両方必要ですか?

両方が必要な場合は、次を試してください。

define([
    "lib/knockout",
    "lib/knockout.dirtyFlag"
],
function(ko, kodf) {
...
  self.dirtyFlag = new kodf.DirtyFlag([
}

あなたも試すことができます:

define([
    "lib/knockout",
    "lib/knockout.dirtyFlag"
],
function(k) {
...
  self.dirtyFlag = new ko.DirtyFlag([
}

私が思うに、あなたはrequireとknockout.dirtyFlagでkoを定義しています。

于 2013-03-07T16:46:44.727 に答える