在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ angularjs中怎么保證一個directive一定是在一個run方法執(zhí)行完成

angularjs中怎么保證一個directive一定是在一個run方法執(zhí)行完成之后再加載?

run方法中執(zhí)行了一個http請求來獲取數(shù)據(jù):
BlogApp.run(['$rootScope', '$http',

function($rootScope, $http) {
$http({
    method: 'GET',
    url: 'http://localhost:3000/posttag'
  }).then(function(response) {
     //這里是需要的數(shù)據(jù)
    $rootScope.tags = response.data;
  }, function(response) {
    // 請求失敗執(zhí)行代碼
    console.log('request failed');
  });
}

]);

// 在指令上綁定了run方法中獲取的數(shù)據(jù)
BlogApp.directive('appPostTag', ['$http', function($http) {
return {

templateUrl: '/view/template/postTag.html',
restrict: 'ECAM',
replace: true,
scope: {
  // postTagDatas: '='
},
controller: ['$rootScope', '$scope', function($rootScope, $scope) {
  $scope.postTagDatas = $rootScope.tags;
}],
link: function ($scope) {
 
}

};
}]);

run方法肯定是先于指令執(zhí)行的,但是由于http請求是異步的,指令執(zhí)行時數(shù)據(jù)并沒有回調(diào)回來,導(dǎo)致tags是undefined,請問有辦法讓指令在run的請求之后再加載么,或者有其他什么辦法可以滿足我的這種需求?

還有一種辦法是在controller中進行數(shù)據(jù)的請求,然后在html標簽上通過屬性進行數(shù)據(jù)的傳遞,但是這樣我試過也會出現(xiàn)指令先于controller加載的情況。。。

回答
編輯回答
澐染

可以內(nèi)部給個初始化的值 舒大哥

2018年4月22日 15:07
編輯回答
朕略萌

試一下使用廣播實現(xiàn)

2017年9月8日 04:19
編輯回答
鐧簞噯

試了一下在回調(diào)函數(shù)里廣播,真的實現(xiàn)了,謝謝2樓

2017年10月26日 16:41