在工厂调用之后更新$ scope变量

时间:2016-09-06 03:51:31

标签: angularjs angular-directive

我是棱角分明的新人。我使用代码:

工厂

// Factory
module.factory('mainJsonData', function($http) {
 var promise = null;
  return function() {
   if (promise) {
    // If we've already asked for this data once,
    // return the promise that already exists.
    return promise;
   } else {
    promise = $http.get('json/main.json');
    return promise;
   }
 };
});

控制器代码为:

// Getting factory data
 mainJsonData().success(function(mainJsonData) {
  $scope.mainJsonData = mainJsonData;
 });

我想在自定义指令中使用$scope.mainJsonData

1 个答案:

答案 0 :(得分:1)

试试这个: -

.directive('myDir', function() {
  return {
    restrict: 'E',
    scope: {
      mainJsonData: '=mainJsonData
    },
  };
});

<强>控制器

.controller('myController', function($scope) {
   mainJsonData().success(function(mainJsonData) {
      $scope.mainJsonData = mainJsonData;
   });
});

<强> main.html中

<div ng-controller="myController">

   <data-my-dir main-json-data="mainJsonData">
   </data-my-dir>

</div>

这样您就可以使用$ scope访问指令中的mainJsonData