cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - Pramuat dan suntikan pengawal sudut-ui-penghala

Selepas

ui-router 预加载 resolve memperoleh data, bagaimana untuk menyuntiknya ke dalam pengawal?

Catatan:

Kod penghalaan ↓

$stateProvider.state('dashboard', {
    url: '/dashboard',
    templateUrl: 'views/dashboard/index.html',
    resolve: {
        getList: function ($stateParams, $NetRequest){
            var options = {type: 'charts'};
            
            $NetRequest.post(options).then(function($ref){
                return $ref.data;
            });
        }
    },
    controllerUrl: 'views/dashboard/index',
    controller: 'DashboardController',
    controllerAs: 'vm'
});

Kod Perkhidmatan ↓

service.post = function($options){
    var deferred = $q.defer();
    
    // 省略请求函数...
    
    return deferred.promise;
};

Jika anda menyuntik getList terus ke dalam pengawal pada masa ini, hasilnya akan menjadi undefined.

Saya membaca dokumentasi rasmi dan terdapat parameter $inject, tetapi malangnya tiada contoh saya tidak tahu cara menggunakannya.

ringa_leeringa_lee2816 hari yang lalu562

membalas semua(2)saya akan balas

  • 仅有的幸福

    仅有的幸福2017-05-15 17:13:59

    Selesai masalah, caranya sebenarnya sangat mudah - -

    $stateProvider.state('dashboard', {
        url: '/dashboard',
        templateUrl: 'views/dashboard/index.html',
        resolve: {
            getList: function ($stateParams, $NetRequest){
                var options = {type: 'charts'};
                
                return $NetRequest.post(options);
                // 因为 $NetRequest.post 已经返回了结果
            }
        },
        controllerUrl: 'views/dashboard/index',
        controller: 'DashboardController',
        controllerAs: 'vm'
    });

    balas
    0
  • 漂亮男人

    漂亮男人2017-05-15 17:13:59

    '//Dapatkan data di sini'. . . . Adakah anda memulangkan janji anda?

    balas
    0
  • Batalbalas