0

我的 AngularJS 应用程序有一个带有搜索输入和搜索类型多选选择的登录页面。当访问者输入搜索并单击 GO 时,应用程序将路由到结果视图。

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

如何使视图根据搜索类型处理差异。该视图是结果的 ng-repeat。如果搜索类型是地点,则为地址。如果是一个人,那么标题就是名字。

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

4

1 回答 1

2

这是一个 plnkr,它演示了如何根据options列表中的选择执行不同的路由。这种方法让您可以为每个搜索类别定义不同的控制器、范围和模板。

更新 这是一个 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);
    }
};
于 2013-06-05T15:59:06.067 回答