2016-09-06 3 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; 
    }); 
}); 

당신이 $ 범위를 사용하여 지시에 mainJsonData에 액세스 할 수

<div ng-controller="myController"> 

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

</div> 

그래서 main.html.