3

Я использую TypScript 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-сетку, так что мы ленивы нагрузки (ос ленивым погрузчик) на изменение состояния, как так:

$ocLazyLoad.load('uiGrid'); 

нота uiGrid была настроена в угловом модуле конфигурации вызова, как это:

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

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

        } 

Теперь это все работает просто отлично, используя угловую 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 Угловое ,

Беглый lookindicated мне, что, когда это происходит, потому что в угловых animate.js Д. И. из $$ animateJs неопределен ... поэтому отображается сообщение об ошибке

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

ли oclazyload проблему, Я немного посмотрел на него и не знал, может ли способ, которым он украшает бутстрап и модуль, может помочь?

Заранее благодарим за любую помощь.

+0

Hi Brandon. Могли ли вы решить эту проблему? У меня также есть одна и та же проблема, за исключением того, что я не lazy-load angular-animate. –

+0

Извините, изменили работу в прошлом году и не были здесь недавно. Я не думаю, что я решил это, но я не делал Angular с июня прошлого года ... – Brandon

ответ

-1

У пользователя ui.grid есть зависимости от ngAnimate, поэтому вам необходимо загрузить его перед загрузкой ui.grid.

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

Надеюсь, это поможет.

+0

На самом деле я уже загружаю ngAnimate в конфигурацию requirejs, uiGrid ленивые нагрузки позже, как только человек будет аутентифицироваться. В этом сценарии все в порядке, но как только я войду в систему, и если я перезагружу страницу, отображается ошибка, хотя ngAnimate снова загружается сначала requirejs перед загрузкой uiGrid. – Brandon

+0

[link] (http://stackoverflow.com/a/35710288/5083812) Объяснение довольно чистое. –

+0

Эта ссылка, похоже, не помогает. OP даже сделал комментарий, что он не работает, как опубликовал его, но что они просто добавят uigrid без ленивой загрузки и отметят правильный ответ. В моем случае я сделал ocLazyLoad зависимым от ngAnimate, поэтому я до сих пор не понимаю, почему это происходит, и я действительно не хочу вникать в кишки угловой и ui-сетки на данный момент. – Brandon

Смежные вопросы