recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - Comment créer des fonctions publiques dans Angularjs

J'ai deux fonctions qui doivent être utilisées sur plusieurs pages. Comment puis-je les extraire séparément et les mettre dans un fichier js ?
Je vois que la plupart des informations sur Internet consistent à créer un service ou une usine puis à l'intégrer dans le contrôleur. Mais mes deux fonctions sont appelées dans une autre fonction. J'ai essayé de mettre le contrôleur enfant dans la fonction et une erreur s'est produite. Que dois-je faire ? Y a-t-il un autre moyen ?
Mon code ressemble à :

var app = angular.module('myApp', []);
app.controller('Ctrl', function($scope, $http) {
$scope.z = function{

$scope.word1 = 1;
$scope.word2 = 2;
$http.get(url, config)
                .then(function (response) {
                $scope.items = response.data.data;
                $scope.a();
                }
 $scope.b= function{
 $scope.a();
 }               
   $scope.a= function{   
   }          
}
});

Où les fonctions a et b sont les fonctions publiques que je dois évoquer. word1 et word2 sont également utilisés dans ces deux fonctions, mais je ne souhaite pas les mentionner car ces deux valeurs​​sont différentes sur chaque page. À l'heure actuelle, cette méthode d'écriture peut être implémentée sur ma page. Comment pouvons-nous mettre ces deux fonctions dans un fichier js séparé ?

我想大声告诉你我想大声告诉你2861 Il y a quelques jours575

répondre à tous(3)je répondrai

  • phpcn_u1582

    phpcn_u15822017-05-15 17:07:27

    // app作为全局变量
    window.app = angular.module('myApp', []);
    
    // 下面这段提成一个单独的xxxCtrl.js文件
    app.controller('Ctrl', [
      '$scope',
      '$http',
      'yourService',
      function($scope, $http, yourService) {
        // a方法调用
        yourService.a();
        // b方法调用
        yourService.b();
      }
    ]);
    
    // 下面这段提成一个单独的xxxService.js文件
    app.factory('yourService', ['', function() {
      // a,b公用方法
      var temp = function() {
        //...
      };
    
      function Service() {
        this.a = function() {
          temp();
          //...
        }
        this.b = function() {
          temp();
          //...
        }
      }
      return new Service();
    }])

    répondre
    0
  • 怪我咯

    怪我咯2017-05-15 17:07:27

    Ou en tant que service, passez word1, word2 et autres comme paramètres, ce qui est flexible et réutilisable

    répondre
    0
  • 为情所困

    为情所困2017-05-15 17:07:27

    Les méthodes publiques peuvent être extraites et mises en service, puis le service peut être injecté dans la méthode publique qui doit être appelée

    répondre
    0
  • Annulerrépondre