2015-02-24 7 views
5

Web-Entwicklung und Angular sind völlig neu für mich. Ich habe Modul, Fabrik und Controller in einer Datei (app.js) erstellt. Unten ist der BeispielcodeAngular JS Controller und Factory in separaten Dateien

//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(); 
}); 

Ich frage mich, wie Modul, kann Fabrik und Controller in separaten Dateien gespeichert werden.

Ich kann den Controller in eine separate Datei platzieren, wenn der Controller keinen Bezug zum Werk herstellt. Ich kann es nicht funktionieren, wenn der Controller die Fabrik und die Fabrik in einer separaten Datei verwendet. Danke

+0

sollte sich in separaten Dateien kein Problem sein, bei der Umsetzung , solange Sie sie in der richtigen Reihenfolge laden (dh zuerst das Modulskript und dann die anderen beiden, deren Reihenfolge nicht mattiert wird) r) – thedoctor

Antwort

16

Fügen Sie Ihre Haupt-Anwendungsdatei (in der Sie das Modul erstellen) über die Controller- und Werksdateien ein.

für das Abrufen von bereits bestehenden Modul:

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

Für Controller-Datei:

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

Für Fabrik-Datei:

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

Ihre Lösung funktioniert gut ... Ursprünglich habe ich var ipCharts = angular.module ('ipCharts', []) in jeder Datei. –

+0

ja, das ist für die Schaffung neuer, großartig zu hören, dass es dir geholfen hat :) –

Verwandte Themen