2014-12-05 35 views
0

现在我可以在我的AppCtrl中执行我的服务,但这是不对的。因为只有当用户不喜欢page2时才需要该服务。当page2状态处于活动状态时,如何执行我的服务?我试着解决,但无法正常工作。

app.config(function ($stateProvider, $urlRouterProvider) { 


     $urlRouterProvider.otherwise('home'); 

     $stateProvider.state('home', { 
      url: '/home', 
      templateUrl: 'home.html' 
     }) 

     $stateProvider.state('page2', { 
      url: '/page2/:topicId', 
      templateUrl: 'page2.html' 
     // call my service here? 
    }); 

    }); 

app.controller('AppCtrl', ['$scope', 'getTopicContent', function($scope,getTopicContent){ 
    getTopicContent.request().success(function(data){ 
     $scope.myList = data; 
    }); 
}]); 


app.factory('getTopicContent', ['$http', function($http){ 

    var query = function() { 
     return $http({ 
      url: "http://www.corsproxy.com/mydata.me/level1/list.php", 
      method: "GET" 
     }) 
    } 

    return { 
     request : function(){ 
      return query(); 
     } 

    } 
}]); 

回答

0

您可以为您的页面创建控制器并在其中注入服务。

$stateProvider.state('page2', { 
     url: '/page2/:topicId', 
     templateUrl: 'page2.html', 
     controller: 'Page2Ctrl' 
}); 

那么你的控制器看起来像

app.controller('Page2Ctrl', ['$scope', 'getTopicContent', function($scope,getTopicContent){ 
    getTopicContent.request().success(function(data){ 
     $scope.myList = data; 
    }); 
}]); 

,如果你想尝试的决心,你可以做这样的事情

$stateProvider.state('page2', { 
     url: '/page2/:topicId', 
     templateUrl: 'page2.html', 
     controller: 'Page2Ctrl', 
     resolve: { 
      content: getTopicContent.request().success(function(data){ 
         return $scope.myList = data; 
        }); 
     } 
}); 

然后在你的Page2Ctrl您可以验证此内容

app.controller('Page2Ctrl', ['$scope', 'getTopicContent', function($scope, content){ 
    if (content) { 
     $scope.content = content; 
    }  
}]); 
+0

我得到一个Page2Ctrl是没有定义的。在我的HTML应该包含ng-controller? – 2014-12-05 05:42:02

+0

未被捕获的错误:[$ injector:modulerr]由于以下原因,未能实例化模块应用程序: ReferenceError:Page2Ctrl未定义 – 2014-12-05 05:50:55

+0

您是否将文件包含在index.html中?你不需要在html中单独使用ng-controller – 2014-12-05 06:08:49

相关问题