angularJS指令根据搜索结果处理视图中的差异?

时间:2013-06-05 15:12:03

标签: angularjs angularjs-directive

我的AngularJS应用程序有一个登录页面,其中包含搜索输入和搜索类型的多选项选择。当访问者输入搜索并单击“开始”时,应用程序将路由到结果视图。

现在根据他们在搜索类型下拉列表中的选择,视图会有所不同。他们可能会选择搜索某个人或地点或公司。

如何根据搜索类型使视图处理差异。该视图是结果的重复。如果搜索类型是一个地方,那么地址。如果它是一个人,则标题是名称。

我认为我的观点需要成为一个指示,但我还没有看到这种类型的例子。

1 个答案:

答案 0 :(得分: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);
    }
};