2015-06-19 45 views
0

我正在使用VS2015 RC Cordova TypeScript項目學習AngularJS和TypeScript。VS2015中AngularJS TypeScript ts文件的序列問題appBundle.js

我在「index.ts」的同一個文件夾中添加了一個「MyController.ts」文件,下面的代碼運行良好。

module MyTestApp{ 
 
    export class MyController 
 
    { 
 
      constructor($scope) 
 
      { 
 
      $scope.message = { title: "Hello World!!" }; 
 
      } 
 
    } 
 
} 
 
var myApp = angular.module('myTestApp', []);   
 
myApp.controller('myController', MyTestApp.MyController);

然而,當我在 「MyController.ts」

module MyTestApp{ 
 
    export class YourController 
 
    { 
 
      constructor($scope) 
 
      { 
 
      $scope.message = { title: "Hello World!!" }; 
 
      } 
 
    } 
 
}

,然後同一文件夾中添加另一個文件 「YourController.ts」將此代碼添加到MyController.ts的最後一行,因爲控制器需要添加到角度模式中ULE。

myApp.controller('myController', MyTestApp.YourController); 

我編譯的項目沒問題,但運行了錯誤信息。

事實證明,這些ts文件將全部按照ts文件的字母順序順序編譯到「appBundle.js」中。 所以,原因是「Ÿ ourController.ts」是在「中號 yController.ts」這行

myApp.controller('myController', MyTestApp.YourController); 

找不到「YourController」,這是「的appbundle上面的代碼下。 js「文件。

我知道這是因爲javascript是一個按順序運行的腳本語言,我可以在「YourController.ts」中剪切並粘貼下面的代碼。

var myApp = angular.module('myTestApp', []); 
myApp.controller('myController', MyTestApp.MyController); 
myApp.controller('myController', MyTestApp.YourController); 

但如果下一次我添加其他控制器,說:「ž ooController.ts」,我應該將上述所有代碼「ž ooController.ts」的最後一行?

任何人都可以建議我,哪裏是放置上述代碼的適當位置?

非常感謝。

回答

1

不推薦使用自動捆綁爲out有記錄在這裏的幾個不良後果:https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md

這就是說,你可以使用類似grunt-ts,以減輕疼痛:https://github.com/TypeStrong/grunt-ts#javascript-generation

+0

感謝建議。但不知道是否可以直接從VS2015做任何設置。 – Paul

+0

哦。經過測試,我發現ts文件中的「參考路徑」可以解決「appBundle.js」文件中的序列問題。 /// Paul

相關問題