2013-03-07 1 views
0

이것은 내가 이런 정의 설정을 가지고 knockout.dirtyFlag.jsrequirejs로 koLite를로드하는 방법은 무엇입니까? <pre><code>define([ "lib/knockout", "lib/knockout.dirtyFlag" ], function(ko) { ... self.dirtyFlag = new ko.DirtyFlag([ } </code></pre> <p></p> 기본적으로 내가 오류가 DirtyFlag가 정의되지 않은 것을 말하는 얻을 :

에서 내 모델에서
;(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); 

입니다.

무엇을해야합니까?

답변

2

글쎄, 보이는, 그래서 난 내 결과를 게시합니다 :

shim: { 
"lib/knockout/knockout.dirtyFlag": { 
    deps: [ 
     "lib/knockout/knockout" 
    ], 
    init: function (ko) { 
     var self = this; 
     ko.DirtyFlag = self.ko.DirtyFlag; 
     return ko; 
    } 
} 

내가 자바 스크립트 또는 requirejs 잘 알고 아니에요 :이 추가 config (설정) 내 requirejs에서

을 , init는 "ko"로 dep를 넣은 것 같고 ko에 DirtyFlag를 만들 수 있습니다. self.ko.DirtyFlag는 실제 knockout.dirtyFlag 자바 스크립트입니다.

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([ 
} 

난 당신이 knockout.dirtyFlag에서와 같이 필요뿐만 아니라 코를 정의하는 생각으로

. 나는 그것을 작업 가지고 같은

+0

은 내가 이것을 시도 할 때 kodf가 정의되지 않았다고 말합니다. –

+0

페이지가 knockout.dirtyFlag.js로로드되고 있습니까? – SteveP

+0

아니요, require.js를 통해로드하려고 시도합니다 –

0

나는 정의 된 메소드를 사용하여 kolite 클래스를 마무리했다. 아래 예제는 command이지만, 다른 것들도 마찬가지입니다.

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

그리고 당신이 master에서 최신 버전을 사용할 수 있습니다, 내 모듈

define(['command'], function (ko) { 
    var doYourStaff = 0; 
    return doYourStaff; 
}); 
+0

knockout.command.js에는 다음과 같은 몇 가지 기능이 있습니다 (function (ko) ..... 각 메소드에 대해 어떻게 정의 했습니까? 귀하의 knockout.command.js 파일 –

0

우리는 지금 세 libs와에 대한 RequireJS에 대한 지원을 추가했습니다에 명령

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

을 감쌌다.

+0

이 소프트웨어와 제휴 관계에 있다면 귀하의 답변에 명확하게 기재 해주십시오. 그렇지 않으면 스팸으로 삭제 될 위험이 있습니다 – ChrisF

+0

오, 그 사실을 모릅니다. 공동 저자 중 한 명입니다. – hfjallemark

관련 문제