在我的項目中,用戶可以從外部API搜索flashcard集的類別。返回信息時,每個組的名稱使用ng-repeat顯示。我還爲ng-repeat附加了一個ng-click函數,該函數複製集合id,然後發送另一個$ http get請求,返回有關該特定集合的信息。如何從視圖中獲取信息到控制器並返回到另一個視圖?
下面是HTML:
<form ng-submit='getCategories(searchTerm)'>
<input ng-model='searchTerm' placeholder="Search Categories">
</form>
<ul>
<li ng-repeat='name in categories' ng-click='getCategory(name.id)' ui-sref='category'>{{name.category}}</li>
</ul>
我的問題是,當用戶點擊通過UI-SREF一個設置視圖的變化,功能激發的$ HTTP請求,我可以控制檯日誌的信息,但它不會顯示在新視圖上。我知道每當狀態發生變化時,控制器都會'刷新',但我不知道如何解決這個問題。
這裏是控制器:
這裏是服務:
angular.module('FlashCards').service('flashcard', function($http, $q){
this.getCategoriesBySearch = function(searchTerm){
var deferred = $q.defer();
$http({
method: "GET",
url: "https://www.coursehero.com/api/flashcards/categories/?api_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&starts_with=" + searchTerm
}).then(function(response){
deferred.resolve(response.data.data);
})
return deferred.promise;
};
this.getCategoryById = function(setId){
var deferred = $q.defer();
$http({
method: "GET",
url: "https://www.coursehero.com/api/flashcards/categories/" + setId + "/sets/?api_key=YMBXVufy7GkBKoVE34SAMAZJfPVapK32"
}).then(function(response){
deferred.resolve(response.data.data);
})
return deferred.promise;
};
});
讓我知道,如果這個問題的任何部分需要多一點解釋。謝謝。
在StateProvider配置文件中使用'resolve'屬性使用定義的狀態上的resolve屬性將數據提供給控制器上的狀態變化 –
。看看[這個(https://github.com/angular-ui/ui-router/wiki)](https:// github。com/angular-ui/ui-router/wiki)鏈接尋求幫助。 – Unknown
你可以附上一個plunkr嗎? – Deepanjan