2016-12-01 173 views
-1

我目前正在使用平均堆棧編碼一個簡單的論壇網站。我正在展示某個特定主題的內容。爲此,我使用ng模型,以便用戶輸入主題的名稱,然後查詢我的mongodb。問題在於刷新後,用戶必須再次輸入名稱以獲得期望的內容。我如何編碼以便用戶選擇一個主題並顯示正確的內容?如何在angularjs中將參數傳遞給控制器​​?

回答

0

我就讓你填

var search = $stateParams.search; 

這應該給你一個良好的開端,希望它有助於=)在你需要的空白處(或者你可以提出更多的問題),但是這裏有一些來自Angular方面的基本代碼,用來命中端點並檢索一些數據並將其顯示在視圖中。

您需要UI Router,如Gustavo的回答中所述。

應用程序 - 此處的配置將允許您刷新頁面,並仍然能夠保留所需的主題。

angular.module('app', ['ui.router']) 
    .config(function($stateProvider) { 
    $stateProvider.state('topics', { 
     url: '/topics/:topic', 
     templateUrl: 'path_to_template.html', 
     controller: 'myController' 
    }); 
    }); 

服務 - 這會跟你的API,它會搶數據爲您服務。

angular.module('app') 
    .service('myService', function($http) { 
    this.getInfo = function(topic) { 
     return $http.get('path_to_api', { params: { topic: topic } }); 
    }; 
    }); 

控制器 - 這將是你的模板綁定到你的範圍,這將允許您顯示結果。

angular.module('app') 
    .controller('myController', function($scope, $stateParams, myService) { 
    activate(); 

    function activate() { 
     myService.getInfo($stateParams.topic) 
     .then(function(result) { 
      $scope.topicInfo = result; 
     }); 
    } 
    }); 

希望這會有所幫助 - 高興地回答您可能有的任何其他問題。

0

如果你想在刷新後保留數據,你應該使用angular-ui-router(https://github.com/angular-ui/ui-router)將你的參數作爲參數集成到url中。

.state('topics', { 
    url: '/topics/:search', 
    templateUrl: 'html', 
    controller: 'Controller' 
    }) 

,然後控制器裏面你得到$ stateParams的PARAMS:

相關問題