2013-06-05 96 views
0

我的AngularJS應用程序有一個帶有搜索輸入和搜索類型多項選擇的登錄頁面。當訪問者輸入搜索並點擊GO時,應用程序將轉到結果視圖。angularJS指令處理基於搜索結果的視圖差異?

現在,根據他們在搜索類型下拉列表中選擇的內容,視圖會有所不同。他們可能會選擇搜索一個人或地方或公司。

如何根據搜索類型使視圖處理差異。該觀點是結​​果的重複。如果搜索類型是地址,則是地址。如果是一個人,那麼標題就是名字。

我認爲我的觀點需要成爲一個指令,但我沒有看到這種類型的例子。

回答

2

Here's a plnkr演示如何根據options列表中的選擇執行不同的路由。這種方法讓您爲每個搜索類別定義不同的控制器,範圍和模板。

更新 Here's a jsfiddle,說明使用可注入控制器,提供類別特定搜索

var myApp = angular.module("myApp", []); 

myApp.factory("searchService", function() { 
    return { 
     doSearch: function(query, category) { 
     return "searching for '" + query + "' in category '" + category + "'"; 
     } 
    }; 
}); 

function demo($scope, searchService) { 
    $scope.search = function() { 
     $scope.results = searchService.doSearch($scope.query, $scope.searchCategory); 
    } 
}; 
+0

我在這個方向走了服務,但它意味着重複的代碼。我希望找到一個動態的解決方案。 – getsetbro

+1

以下是使用服務執行搜索的示例:http://jsfiddle.net/ktMVZ/ – Jason