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

このお試しください: - あなたは$スコープを使用して、ディレクティブでmainJsonDataにアクセスできるように

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

を。

関連する問題