Ng-如果仅在刷新页面时有效

时间:2019-04-05 07:18:42

标签: javascript angularjs angularjs-scope angular-ng-if ng-show

我对ng-if有问题,我对angularjs很陌生。我只想在某些视图上显示/隐藏搜索栏,但仅在刷新页面后才能使用。但是,当视图改变时,它应该可以工作。

html:

<div id="searchbarTop" ng-controller="searchbarController">
  <form class="col-md-12 py-1" ng-if="!showSearchbarTop">
    <div class="input-group">
      <input type="text" class="form-control typeahead" id="query" 
        placeholder="Search for folders or workflows..." data- 
        provide="typeahead" autocomplete="off" ng-wflist="workflowList" wf-search/>
    </div>
  </form>
</div>

控制器:

ProjectX.controller("searchbarController", function($scope,$http,$location) {
    $scope.$root.showSearchbarTop = $location.path() === "/";

       ...
});

希望有人可以向我解释我犯的错误。

1 个答案:

答案 0 :(得分:0)

您使用showSearchbarTop作为仅在页面加载开始时初始化的属性。因此,您需要将其用作函数。

请参见以下代码

var ProjectX = angular.module('', []);
ProjectX.controller("searchbarController", function($scope, $http, $location) {
  $scope.$root.showSearchbarTop = function() {
    return $location.path() === "/";
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div id="searchbarTop" ng-controller="searchbarController">
  <form class="col-md-12 py-1" ng-if="!showSearchbarTop()">
    <div class="input-group">
      <input type="text" class="form-control typeahead" id="query" placeholder="Search for folders or workflows..." data- provide="typeahead" autocomplete="off" ng-wflist="workflowList" wf-search/>
    </div>
  </form>
</div>

相关问题