2016-09-06 1 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 в вашей директиве, используя $ рамки.

Смежные вопросы