在没有$ rootScope的情况下访问“inside”$ scope

时间:2014-09-14 22:33:04

标签: angularjs controller angularjs-scope

我有这个控制器,带有$ scope.go,我用简单的ng-click和一个表示我的.json文件名的字符串触发。然后我转到另一个视图并使用.json文件:

HTML

<tr class='clickableRow' ng-click="go('kanji')">    

控制器

.controller('Api_docCtrl', function ($scope, $http, $state, $rootScope) {
$scope.go = function (json) {
  $state.go('api_doc_detail');
  $http.get('views/api_doc/' + json + '.json').success(function (data) {
    $rootScope.doc = (data)
    $rootScope.example = JSON.stringify(data, null, 4);
  })
};

});

由于我听说我不应该污染$ rootScape,我想知道是否有另一种简单的方法来实现相同的结果。

1 个答案:

答案 0 :(得分:0)

使用服务

.factory('JsonService',function(){
           return {doc:null,example:null};
})
.controller('Api_docCtrl', function ($scope, $http, $state, JsonService) {
            $scope.go = function (json) {
            $state.go('api_doc_detail');
            $http.get('views/api_doc/' + json + '.json').success(function (data) {
            JsonService.doc = (data)
            JsonService.example = JSON.stringify(data, null, 4);
    })
};