Anruf einer Service-Funktion von einem Controller in AngularJS

- Controller-Code

'use strict';

angular.module('MyApp').controller('ArticleContribEmailController', [

    '$scope', 'ArticleAppState', 'fbsUserDataService', 'contribEmailService',
    function ($scope, ArticleAppState, fbsUserDataService, contribEmailService ) {

        this.userChanged = function () {

            if (fbsUserDataService.initialized && fbsUserDataService.user && ArticleAppState.page_data) {

                //user has authenticated.
                contribEmailService.initForm();

            }

        };


        //watch for when user data is available, run userChanged.
        $scope.$watch(function() { return fbsUserDataService.user; }, this.userChanged);
        $scope.$watch(function() { return fbsUserDataService.initialized; }, this.userChanged);
    }
]);

Service-Code

'use strict';

angular.module('forbesArticleApp').service('contribEmailService', [

    '$injector', '$route', 'ArticleAppState', 'fbsUserFormFactory', 'fbsUserDataService',

    function initForm ($injector, $route, ArticleAppState, fbsUserFormFactory, fbsUserDataService) {

        console.log("Hello world!");

    }

]);

Ich möchte nur das Feuer der contribEmailService.initForm() Funktion aus dem call-in meinem controller, aber es wird ausgelöst, sobald die Seite geladen wird.

Wie kann ich einstellen, Wann die service-Funktion initForm() genannt wird?

InformationsquelleAutor Prefix | 2015-05-01

Schreibe einen Kommentar