2015-02-24 44 views
5

Web開發和Angular對我來說是全新的。我在同一個文件(app.js)中創建了模塊,工廠和控制器。下面是示例代碼角度JS控制器和工廠在單獨的文件

//Main Module 
var ipCharts = angular.module('ipCharts', []); 

//Factory 
ipCharts.factory('securityFactory', function ($http) { 
    var securities = {}; 
    $http.get('api/Securities'). 
            success(function (data, status, headers, config) { 
             securities = data; 
            }). 
            error(function (data, status, headers, config) { 
             // log error 
            }); 

    var factory = {}; 
    factory.getSecurities = function() { 
     return securities; 
    } 
    return factory; 
}); 

//Controller 
ipCharts.controller('securityController', function ($scope,securityFactory) { 
    $scope.securities = securityFactory.getSecurities(); 
}); 

我想知道如何將模塊,工廠和控制器放置在單獨的文件中。

當控制器沒有提及工廠時,我可以將控制器放在單獨的文件中。當控制器使用工廠和工廠在一個單獨的文件中時,我不能工作。 謝謝

+0

應該沒有問題,在將它們放在不同的文件,只要你按照正確的順序加載它們(例如,先編寫模塊腳本,然後再排列其他兩個順序不會消光的模塊r) – thedoctor 2015-02-24 13:25:53

回答

16

將您的主要應用程序文件(在其中創建模塊)包含在控制器和工廠文件的上方。

用於檢索預先存在的模塊:

var ipCharts = angular.module('ipCharts'); 

對於控制文件:

var ipCharts = angular.module('ipCharts'); 
ipCharts.controller('securityController', function ($scope,securityFactory) { 
    $scope.securities = securityFactory.getSecurities(); 
}); 

對於出廠文件:

var ipCharts = angular.module('ipCharts'); 
ipCharts.factory('securityFactory', function ($http) { 
    var securities = {}; 
    $http.get('api/Securities'). 
            success(function (data, status, headers, config) { 
             securities = data; 
            }). 
            error(function (data, status, headers, config) { 
             // log error 
            }); 

    var factory = {}; 
    factory.getSecurities = function() { 
     return securities; 
    } 
    return factory; 
}); 
+0

你的解決方案工作正常......原來我在每個文件中都有var ipCharts = angular.module('ipCharts',[])。 – 2015-02-24 13:55:17

+0

是的,這是爲了創造新的,很高興聽到它幫助你:) – 2015-02-24 13:58:17