cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - Bagaimanakah pengawal mendapat nilai yang dikembalikan oleh kilang dalam angularjs?

var app = angular.module("MyApp", []);

app.factory("myFactory", function ($http) {

    return {
        
        getDatas: function () {

            var args = {};
            var url = "test.req";

            $http({
                method: 'POST',
                data: args,
                url: url
            }).success(function (response, status, headers, config) {

                return response;


            }).error(function (response, status, headers, config) {

                alert(status + response);

            });

        }

    };

});

app.controller("myCtrl", function ($scope, myFactory) {

    $scope.names = {};
    $scope.title = myFactory.msg;

    alert(myFactory.getDatas());
    $scope.names = myFactory.getDatas();

});

Dalam kod di atas, alert(myFactory.getDatas());
jika nilai kilang tidak dapat diperoleh, undefined akan dipaparkan.
Paparan nyahpepijat penyemak imbas:
angular1.5.3.min.js:6Ralat Tidak Ditangkap: [$injector:modulerr]

Kilang boleh mendapatkan data dari bahagian belakang, tetapi pengawal tidak tahu cara mendapatkan data kilang antara satu sama lain....

世界只因有你世界只因有你2800 hari yang lalu642

membalas semua(1)saya akan balas

  • 黄舟

    黄舟2017-05-15 17:02:43

    Saya baru mula menonton sudut baru-baru ini...


    Anda lihat, kaedah getDatas sebenarnya adalah badan pelaksanaan fungsi tak segerak Setelah getDatas dilaksanakan, $http akan meminta data bahagian belakang secara tidak segerak Walau bagaimanapun, selepas getDatas dilaksanakan, ia kembali dan amaran tidak boleh mendapatkan nilai.

    app.factory("myFactory", function ($http) {
        return {
            getDatas:function(){
                 return $http.get('data/data.json');//return 一个promise
            }
        }
    
    });
    
    app.controller("myCtrl", function ($scope, myFactory) {
    
        $scope.names = {};
        $scope.title = myFactory.msg;
    
        //alert(myFactory.getDatas());
        myFactory.getDatas().success(function (response, status, headers, config) {
                            //要用到返回数据就在这里用了
                            console.log(response);
                            
    
    
                        }).error(function (response, status, headers, config) {
    
                            alert(status + response);
    
                        });
       //下面这句看起来像是要获取数据,挪到上面的success去  $scope.xxx=
        $scope.names = myFactory.getDatas();
    
    });

    balas
    0
  • Batalbalas