在Angular中使用相同的控制器和视图进行搜索和非搜索

时间:2015-11-08 03:06:28

标签: angularjs

我正在进行角度应用。我有一个控制器和一个视图。我想在有和没有搜索字段的情况下使用相同的视图。这意味着如果用户需要查看已填充数据的搜索视图或常规视图,那么我想使用相同的控制器和视图执行此操作。我的想法是,我可以从app.js传递一个额外的参数,以便在控制器中决定是否需要显示搜索字段。这可能吗?

2 个答案:

答案 0 :(得分:1)

我发现解决方案将params属性设置为对象:

在app.js中:

        .state('inventorySearchReport', {
                url: "/inventoryReport",
                templateUrl: "templates/reports/inventoryReport.html",
                controller: "inventoryReportCtrl",
                cache: false,
                params: {
                    search: { value: true }
                }
            })
            .state('inventoryReport', {
                url: "/inventoryReport",
                templateUrl: "templates/reports/inventoryReport.html",
                controller: "inventoryReportCtrl",
                cache: false,
                params: {
                    search: { value: false }
                }
            })

在你的控制器中注入$ state并使用as:

$scope.enableSearch = $state.params.search

答案 1 :(得分:0)

您可以使用 ng-if Angular documentation for ng-if

首先初始化变量说 控制器中的 $scope.test= false; 假设您希望在通过$ http填充数据时显示搜索字段,然后更改

{
$scope.test = true;
$http({..})
}

并在您的视图中

<input type="text" name="search" ng-if="test==true"/> // will display the search when data is populated