cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - Bagaimana untuk mencipta fungsi awam dalam Angularjs

Saya mempunyai dua fungsi yang perlu digunakan pada banyak halaman Bagaimana saya boleh mengekstraknya secara berasingan dan memasukkannya ke dalam fail js?
Saya melihat bahawa kebanyakan maklumat di Internet adalah untuk mencipta perkhidmatan atau kilang dan kemudian membenamkannya dalam pengawal. Tetapi dua fungsi saya dipanggil di dalam fungsi lain. Saya cuba meletakkan pengawal kanak-kanak ke dalam fungsi dan ralat berlaku. Adakah terdapat cara lain?
Kod saya kelihatan seperti:

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{   
   }          
}
});

Di mana fungsi a dan b ialah fungsi awam yang perlu saya bangkitkan. word1 dan word2 juga digunakan dalam kedua-dua fungsi ini, tetapi saya tidak mahu menyebutnya kerana kedua-dua nilai ini berbeza pada setiap halaman. Pada masa ini, kaedah penulisan ini boleh dilaksanakan di halaman saya. Bagaimanakah kita boleh meletakkan kedua-dua fungsi ini ke dalam fail js yang berasingan?

我想大声告诉你我想大声告诉你2861 hari yang lalu576

membalas semua(3)saya akan balas

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

    balas
    0
  • 怪我咯

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

    Atau sebagai perkhidmatan, hantar word1, word2 dan seumpamanya sebagai parameter, yang fleksibel dan boleh digunakan semula

    balas
    0
  • 为情所困

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

    Kaedah awam boleh diekstrak dan dimasukkan ke dalam perkhidmatan, dan kemudian perkhidmatan itu boleh disuntik ke dalam kaedah awam yang perlu dipanggil

    balas
    0
  • Batalbalas