2016-09-06 41 views
-1

我是新角度。我使用的代码为:

工厂

// 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

你究竟想做什么?你想将'$ scope.mainJsonData'传递给自定义指令? –

+2

除了使用[不推荐使用'success'方法](https://docs.angularjs.org/api/ng/service/$http#deprecation-notice),我目前看不到任何问题。代码的其余部分在哪里存在问题? – Phil

回答

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> 

所以,你可以在你的指令使用$范围内访问mainJsonData