2015-02-16 18 views
7

AngularJS için yeni. Yani açısal projede global fonksiyonların nasıl ekleyeceğine dair yardıma mı ihtiyacınız var? Dosya açarken açısal uygulama, global yöntem olarak çalışması gereken showScrollAndGo işlevini kullanıyor ancak çalışmıyor. app.js Kodu: Ben farklı görünümlerde showScrollAndGo erişmesi gerekenangularJS'de Global İşlevler

'use strict'; define(
[ 
    'angular', 
    'jQuery', 
    'angular-route', 
    'angular-resource', 
    'angular-ui-bootstrap', 
    'highcharts', 
    'highcharts-theme', 
    'highcharts-ng', 
    'controllers/index', 
    'directives/index', 
    'filters/index', 
    'services/index', 
    'angular-token-auth', 
    'angular-local-storage', 
    'jquery.slimscroll', 
    'jquery-icheck' 
], 
function(angular, $) { 
    'use strict'; 
    return angular.module('radian', ['ngRoute', 'ngResource', 'ui.bootstrap', 'app.services', 'app.controllers', 'app.directives','app.filters', 'highcharts-ng', 'ng-token-auth', 'ngStorage']) 
     .constant('globals', { 
      API_URL: 'http://localhost:3000/api', 
      AUTH_URL: 'http://radiancor-env.elasticbeanstalk.com', 
      TEMPLATE_URL: 'app/views' 
     }) 
     .constant('pagination', { 
      items_per_page: 10, 
      max_size: 5, 
      direction_links: true, 
      boundary_links: true, 
      current_page: 1, 
      total_items: 0 
     }) 
     .config(['$routeProvider', 'globals', routeConfiguration]) 
     .config(['$httpProvider', httpConfiguration]) 
     .config(['$authProvider', 'globals', authProvider]) 
     .config(['$rootScopeProvider', root_functions]) 
     .config(['paginationConfig', paginationConfiguration]); 

    function authProvider($authProvider, globals) { 
     $authProvider.configure({ 
      apiUrl: globals.AUTH_URL 
     }); 
    } 

    function paginationConfiguration(paginationConfig) { 
     paginationConfig.firstText = '<<'; 
     paginationConfig.lastText = '>>'; 
     paginationConfig.nextText = '>'; 
     paginationConfig.previousText = '<'; 
    } 

    function routeConfiguration($routeProvider, globals) { 
     $routeProvider 
      .when('/', { 
       templateUrl: globals.TEMPLATE_URL+'/misc/login.html', 
       controller: 'LoginController', 
       controllerAs: 'login' 
      }) 
      .when('/dashboard', { 
       templateUrl: globals.TEMPLATE_URL+'/misc/dashboard.html', 
       controller: 'DashboardController', 
       controllerAs: 'dashboard' 
      }) 
      .when('/entity/:entity/:action', { 
       templateUrl: function(rp) { 
        return globals.TEMPLATE_URL+'/'+rp.entity+'/'+rp.action+'.html'; 
       } 
      }) 
      .when('/entity/:entity/:action/:id', { 
       templateUrl: function(rp) { 
        return globals.TEMPLATE_URL+'/'+rp.entity+'/'+rp.action+'.html'; 
       } 
      }) 
      .otherwise({ 
       redirectTo: '/' 
      }); 
    } 

    function httpConfiguration($httpProvider) { 
     $httpProvider.defaults.headers.common['Content-Type'] = 'application/json; charset=utf-8'; 
     $httpProvider.defaults.headers.common['Accept'] = 'application/json, text/javascript'; 
     $httpProvider.defaults.useXDomain = true; 
     $httpProvider.interceptors.push('interceptService'); 

    } 

    function root_functions($rootScope) { 
     $rootScope.showScrollAndGo = function(path) { 
      alert("I'm global foo!"); 
     }; 
    } 

}); 

. Yani küresel hale getirmeye çalışıyorum. Hata yaptığım herhangi bir fikrin var mı?

böyle görünümünde kullanıyorum: değinen

<a href="#/entity/clients/list" data-ng-click="showScrollAndGo('aaa');"><i class="fa fa-circle mrm mlm"></i>Manage Clients</a> 
+0

Azaltır, herhangi Denetleyici dosyasının adıyla bu fabrikayı bakın ve aşağıda gibi kullanabilirsiniz yılında

app.factory('notificationFactory', function (toaster) { //............. }); 

: app.js olarak

bir fabrika eklemek "$ rootScope.showScrollAndGo" ve arama sonuçlarının – paul

cevap

6

Eğik en document

angular.module('myModule', []). 
config(function(injectables) { // provider-injector 
    // This is an example of config block. 
    // You can have as many of these as you want. 
    // You can only inject Providers (not instances) 
    // into config blocks. 
}). 
run(function(injectables) { // instance-injector 
    // This is an example of a run block. 
    // You can have as many of these as you want. 
    // You can only inject instances (not Providers) 
    // into run blocks 
}); 

Sen

app.run(function($rootScope) { 
    $rootScope.showScrollAndGo = function(path) { 
     alert("I'm global foo!"); 
    }; 
}); 
1

Deneyebilirsin gibi çalışma aşamasında rootScope konfigürasyon dosyasında gerek bir fabrika eklemek ve fabrikaya gereken tüm kontrol cihazlarına başvurun.

Örnek:

app.controller('sampleController', ['$scope','notificationFactory', 
    function ($scope, notificationFactory) { 
    } 
]); 
+2

numaralı çözümle sonuçlandığını gösteren hata mesajını nasıl gösterebileceğinizi gösterebilir, ancak n ile global olarak bir yerde bildirmek istedim o denetleyicideki değişiklikler. –