2015-01-26 45 views
1

所以我寫一個角前端應用的企業客戶端和我的文件結構是這樣的:問題將每個模塊的路線有角

- App (root) 
    - Assets 
    - CSS 
    - JS (plugins, libraries, etc) 
    - Images 
    - Fonts 
    - Common 
    - Header 
     -header.html 
    - Sidebar, etc 
    - Modules 
    - HR 
     - HR.module.js (the module, for this module, yeah kinda confusing) 
     - HR.routes.js (the routes for this module) 
     - Employees 
     - EmployeesController.js (the controller for this specific peice of thsis module) 
     - EmployeesRepository.js (the factory/service for this app) 

到目前爲止,已制定了正常的(雖然提示是歡迎)我遇到的問題是,如果我有兩個模塊(讓我們說人力資源和IT),那麼我的主索引頁需要利用兩者的路線,但每頁只能有一個角度模塊。我可以把所有的路線放在一個通用的app.js文件中,但是這種混亂與我的分離佈局有關。有針對這個的解決方法嗎?或者我應該使用更優雅的文件結構?

EDIT1 - 路由

var hrModule = angular.module("hrModule", ['ngRoute', 'ngResource']) 
    .config(function ($routeProvider, $locationProvider) { 
     $routeProvider.when('/HR/Employees', { templateUrl: '/Modules/HR/Employees/Employees.html', controller: 'EmployeesController' }); 
     $locationProvider.html5Mode(true); 
    }); 
+0

「每頁只能有一個角度模塊」 - 模塊與「頁面」(或者我認爲你的意思是「視圖」)無關。模塊只是組織代碼的一種方式。 – 2015-01-26 21:56:50

+0

@NewDev對不起,如果我很困惑,我正在做一個SPA,它有一個索引頁,它使用多個模塊。但是我不能在我的索引視圖中利用這些模塊中的每個模塊的路由,因爲每個視圖不能有多個模塊。 – Typhomism 2015-01-26 22:01:07

+0

這個文件結構很好看。你是由模塊而不是按功能(如控制器/視圖/等)分離。你想要做的就是將你的路由存儲在每個模塊的JSON文件中,然後根據你加載的模塊讀取JSON。這樣,您可以讀取多個JSON文件,並在應用程序加載/引導時將所有路線分組在一起。因此,在普通下的某個地方,您將擁有讀取和添加新路線的功能。 – SoluableNonagon 2015-01-26 22:02:36

回答

1

這是一個有點棘手。

你要麼需要:

  1. 所有模塊整合到一個應用程序,使路由從一個文件中完成(這是我的意見是在暗示,這可能會需要一個簡單的構建系統會根據構建中包含的json文件構建路由)。

  2. 或者您的窗口中有多個ng-apps,每個都有自己的視圖(如下所示:plnkr.co/edit/wpS8LVeEc5gVPS87n5AN?p=preview)。這種方式意味着你需要一個路由系統,根據哪個模塊顯示來隱藏視圖,但是你可以使用這個功能。

如果您正在尋找創造具有在一個文件中定義的路由小的構建系統,我有一個啓動模板這裏:grunt-angular template。如果要抓取多條路線,您需要在任務中稍微修改一下。

自述文件應該涵蓋大部分內容,否則可隨時給我發消息。