3

私はTypescript 1.7、AngularJS 1.5.7、oclazyload 1.0.9、ui-grid 3.2.5、ui-router 0.3.1、requirejsを使用しています2.2.0

私はアンギュラ1.4.3からの私のコードで

1.5.7にアップグレードするまではまず、すべてが正常に働いていた私が必要とコンフィグからそうのようなソースで引っ張っ:

shim: { 
    'angular': { 
     exports: 'angular', 
     deps: ['Scripts/RequireJS/V.2.2.0/domReady!'] 
    }, 
    'ngSanitize': { 
     deps: ['angular'] 
    }, 
    'ngAnimate': { 
     deps: ['angular'] 
    }, 
    'ngTouch': { 
     deps: ['angular'] 
    }, 
    'uiRouter': { 
     deps: ['angular', 'ocLazyLoad'] 
    }, 
    'uiBootstrapTpls': { 
     deps: ['angular'] 
    }, 
    'ocLazyLoad': { 
     deps: ['angular', 'ngAnimate'] 
    }, 

必要な呼び出しが完了したら、私は角度を設定して、手動でブートストラップを呼び出します。

ユーザーはログインページにアクセスしてログインし、ホームページに移動します。ホームページは、UIグリッドを持っているので、そのような状態変化に我々怠惰な負荷(OC怠惰ローダー):

$ocLazyLoadProvider.config({ 
       events: true, 
       jsLoader: requirejs, 
       serie: true, 
       modules: [ 

        { 
         name: 'uiGrid', 
         files: ['Scripts/AngularUIGrid/V.3.2.5/ui-grid.min'] 

        } 

$ocLazyLoad.load('uiGrid'); 

ノートuiGridは、このような角度モジュールの設定呼び出しで構成されていました

今これは、すべての角度1.5.7を使用して、うまく動作しますが、私はこれを取得ページリロードする場合:

TypeError: $$animateJs is not a function\n  
at prepareAnimation (http://myServer/Scripts/Angular/V.1.5.7/angular-animate.js?bust=2016_6_12_12_24:2152:14)\n  
at initDriverFn (http://myServer/Scripts/Angular/V.1.5.7/angular-animate.js?bust=2016_6_12_12_24:2136:16)\n  
at invokeFirstDriver (http://myServer/Scripts/Angular/V.1.5.7/angular-animate.js?bust=2016_6_12_12_24:3234:24)\n  
at Array.triggerAnimationStart (http://myServer/Scripts/Angular/V.1.5.7/angular-animate.js?bust=2016_6_12_12_24:3080:33)\n  
at nextTick (http://myServer/Scripts/Angular/V.1.5.7/angular-animate.js?bust=2016_6_12_12_24:423:15)\n  
at scheduler (http://myServer/Scripts/Angular/V.1.5.7/angular-animate.js?bust=2016_6_12_12_24:393:5)\n  
at Array.<anonymous> (http://myServer/Scripts/Angular/V.1.5.7/angular-animate.js?bust=2016_6_12_12_24:3102:9)\n  
at Scope.$digest (http://myServer/Scripts/Angular/V.1.5.7/angular.js?bust=2016_6_12_12_24:17338:55)\n  
at Scope.$apply (http://myServer/Scripts/Angular/V.1.5.7/angular.js?bust=2016_6_12_12_24:17553:24)\n  
at done (http://myServer/Scripts/Angular/V.1.5.7/angular.js?bust=2016_6_12_12_24:11698:47) 

をこれは角1.4.3で発生しませんでした。

この問題が発生したとき$$ animateJsのDI角度-animate.jsで、したがって、表示されたエラーメッセージ

var $$AnimateJsDriverProvider = ['$$animationProvider',  function($$animationProvider) { 
    $$animationProvider.drivers.push('$$animateJsDriver'); 
    this.$get = ['$$animateJs', '$$AnimateRunner', function ($$animateJs,  $$AnimateRunner) { 

が問題をoclazyloadは...定義されていないので、それはあることを私にぞんざいlookindicated私はそれを少し見て、ブートストラップを装飾してモジュールが貢献できるかどうかは分かりませんでしたか?

ご協力いただきありがとうございます。

+0

こんにちはブランドン。この問題を解決できましたか?私は同じ問題を抱えていますが、私は怠惰な角度アニメーションではありません。 –

+0

申し訳ありませんが、昨年仕事が変わったし、最近ここにいません。私はそれを解決したとは思わないが、私は昨年6月以来Angularをやっていない... – Brandon

答えて

-1

ui.gridはngAnimateに依存しているため、ui.gridをロードする前にロードする必要があります。

resolve: helper.resolveFor('ngAnimate','ui.grid') 

これが役に立ちます。

+0

実際には、requirejs設定でngAnimateが既にロードされていて、uiGridは人が認証されると遅延ロードされる。そのシナリオでは問題ありませんが、ログインしてからページをリロードすると、uiGridがロードされる前にngAnimateがrequirejsによって最初にロードされてもエラーが表示されます。 – Brandon

+0

[link](http://stackoverflow.com/a/35710288/5083812)説明はきれいです。 –

+0

そのリンクは実際には役に立たないようです。 OPはそれが表示されたとして動作しませんでしたが、怠惰な読み込みなしでuigridを追加し、正しい答えをマークするだけであることをコメントしました。私の場合、私はocLazyLoadをngAnimateに依存させました。なぜこのようなことが起こっているのかまだわかりませんし、現時点では角度とuiグリッドの掘り出し物を掘り起こすことは本当にありません。 – Brandon

関連する問題