angular.js - Pramuat dan suntikan pengawal sudut-ui-penghala
ringa_lee
ringa_lee 2017-05-15 17:11:59
0
2
578
Selepas

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

Catatan:

  • Dalam $state, saya mengimport fail pengawal melalui controllerUrl.

  • Versi penghala ui saya ialah 0.4.2.

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_lee
ringa_lee

ringa_lee

membalas semua(2)
仅有的幸福

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'
});
漂亮男人

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan