2016-09-06 42 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