我的AngularJS应用程序有一个登录页面,其中包含搜索输入和搜索类型的多选项选择。当访问者输入搜索并单击“开始”时,应用程序将路由到结果视图。
现在根据他们在搜索类型下拉列表中的选择,视图会有所不同。他们可能会选择搜索某个人或地点或公司。
如何根据搜索类型使视图处理差异。该视图是结果的重复。如果搜索类型是一个地方,那么地址。如果它是一个人,则标题是名称。
我认为我的观点需要成为一个指示,但我还没有看到这种类型的例子。
答案 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);
}
};