2014-12-05 33 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

相關問題