2013-05-09 20 views
1

開發一個應用程序,並與angularJS 應用程序加載罰款,所有瀏覽器減去IE 9和IE8(可能更低)AngularJS - IE8 IE9永遠不會得到updateRoute方法稱爲

最新的穩定和不穩定的版本試圖嘗試調試它看起來像$ locationChangeSuccess廣播是從來沒有收到對象聽$ rootScope $ on('$ locationChangeSuccess',updateRoute); ,因此永遠不會調用updateRoute方法。 雖然調用afterLocationChange函數。 由於在IE8debugger中運行的糟糕的IE10(我在angularJS中設置的斷點沒有中斷),所以我無法調試,因此使用了console.log輸出。

我手動引導,我有一個特定的路由方式,不使用ng-views而是使用ng-include/ng-switch並向路由添加一個動作屬性,然後由主控制器評估並注入視圖用於ng-switch的範圍。 我不知道它是否與我路由的方式有關,因爲它確實看起來updateRoute從來沒有被調用過,但我在這裏是代碼,以防萬一我錯了。

路由定義 功能(登錄)

{ 
    LOGIN.config 
    (
     [ 
      '$routeProvider', '$locationProvider', '$dialogProvider', 
      function ($routeProvider, $locationProvider, $dialogProvider) 
      { 
       $locationProvider.html5Mode(true).hashPrefix = '!'; 

       $routeProvider 
        .when("/", { action: "login" }) 
        .when("/forgot_password/", { action: "forgot_password" }); 
      } 
     ] 
    ); 
} 

應用控制器

​​

在我的部分

<div id="main-container" ng-switch on="renderPath[0]"> 
    <div ng-switch-when="login" ng-include=" 'js/app/login/partials/login.html' "></div> 
    <div ng-switch-when="forgot_password" ng-include=" 'js/app/login/partials/forgot-password.html' "></div> 
</div> 

我這裏登錄錯誤 https://github.com/angular/angular.js/issues/2608

但似乎很奇怪,沒有人有這個問題,所以我很樂意接受一些人的意見。

我還沒有看到在IE8中工作的應用程序。
如果您有任何鏈接,我會熱衷於檢查它。 乾杯。

回答

0

我感到很慚愧...... :)

花費一個小時的調試,並找出在這之後的角度沒有找到NG控制器指令用於IE,我意識到,我忘了,包括在IE瀏覽器相同的控制器具體的html指令...

<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en" ng-controller="controllerApplication"> <![endif]--> 
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en" ng-controller="controllerApplication"> <![endif]--> 
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en" ng-controller="controllerApplication"> <![endif]--> 
<!--[if gt IE 8]> <html class="no-js" lang="en" ng-controller="controllerApplication"> <![endif]--> 
相關問題