每当我得到搜索结果时,我都会尝试呈现指令。algoliaSearch
我的计划是最初保留一个范围变量false
,每当我返回搜索结果时,我将其更改为true
. 然后在我看来,我尝试根据变量的值来呈现指令。
.directive('searchResults', function () {
return {
restrict: 'E',
templateUrl: 'app/search/directives/templates/searchResults.template.html',
controller: ['$scope', 'AlgoliaSearchService', function ($scope, AlgoliaSearchService) {
$scope.hits = [];
$scope.nbHits = null;
$scope.algoliaSearch = false;
AlgoliaSearchService.on('result', results => {
$scope.algoliaSearch = true;
$scope.hits = results.hits;
$scope.nbHits = results.nbHits;
console.log($scope.algoliaSearch)
});
}]
};
})
在我看来,当我得到搜索结果时,我想呈现指令
<search-results ng-if="algoliaSearch"></search-results>
但这似乎不起作用。它不会在搜索时呈现任何内容,甚至console.log($scope.algoliaSearch)
不会在控制台上打印任何内容。但是,如果我使用喜欢
<search-results></search-results>
或者
<search-results ng-if="true"></search-results>
然后它渲染和console.log
工作,但这不是我想要的方式。
我的问题是为什么它不根据我的范围变量有条件地呈现指令。一旦我得到搜索结果,我想让它有条件地呈现。
任何帮助深表感谢。