gpt4 book ai didi

javascript - 使用 ionic-filter-bar 进行 ionic 输入 - 无法引用 $scope

转载 作者:行者123 更新时间:2023-12-03 09:51:11 26 4
gpt4 key购买 nike

我正在尝试实现 ionic-filter-bar,以便在我的 ionic 移动应用程序上进行提前输入,但在尝试确定 Controller 内的 $scope 时遇到问题。我一直在复制此处演示应用程序中的大部分代码:

https://github.com/djett41/ionic-filter-bar/blob/master/demo/app/scripts/app.js

我可以确定 $scope.hops 以便在 ng-repeat 中正确显示所有对象,并在页面上正确呈现(无需搜索),但我无法在 showFilterBar 函数中引用 $scope.hops 。输出到 console.log 时收到未定义的消息(请参阅代码中的注释)。我认为这与 $scope 可以在其他函数中访问的方式有关(??)但我卡住了。

有人可以帮我一下吗?提前致谢。

Controller

//Added $ionicFilterBar & $timeout - Remove if does not work
.controller("hopsListCtrl", function($scope, hopsService, $stateParams, $state, $ionicFilterBar, $timeout) {

hopsService.getHops().then(function(hops) {

//This correctly returns my object of hop varieties
$scope.hops = hops;


})


$scope.onSelectHopsDetail = function(hops_detail) {

$state.go('tab.hopsDetail', hops_detail);

hopsService.postHopDetails(hops_detail);



};

var filterBarInstance;

//This returns "undefined" -
console.log($scope.hops);

$scope.showFilterBar = function() {
filterBarInstance = $ionicFilterBar.show({

hops: $scope.hops,
update: function(filteredItems) {
$scope.hops = filteredItems;

//This returns "undefined"
console.log(filteredItems);
},
filterProperties: 'Name'
});
};

$scope.refreshItems = function() {
if (filterBarInstance) {
filterBarInstance();
filterBarInstance = null;
}

$timeout(function() {
getItems();
$scope.$broadcast('scroll.refreshComplete');
}, 1000);
};


})

啤酒花列表页面

<ion-view title="Hops Guide">
<ion-nav-buttons side="secondary">
<button class="button-icon icon ion-ios-search" ng-click="showFilterBar()">
</button>
</ion-nav-buttons>

<ion-content direction="y" scrollbar-y="false">

<ion-refresher pulling-icon="ion-arrow-down-b" on-refresh="refreshItems()">
</ion-refresher>

<ion-list>
<ion-item collection-repeat="hop in hops">
<a class="" ng-click="onSelectHopsDetail(hop)">
<p>{{hop.Name}}</p>
</ion-item>
</ion-list>

<div ng-if="hops !== undefined && !hops.length" class="no-results">
<p>No Results</p>
</div>

</ion-content>
</ion-view>

最佳答案

您需要使用 items 属性,而不是跳转到过滤栏服务。所以你对 showFilterBare 的调用应该是

filterBarInstance = $ionicFilterBar.show({

items: $scope.hops,
update: function(filteredItems) {
$scope.hops = filteredItems;

//This returns "undefined"
console.log(filteredItems);
},
filterProperties: 'Name'
});

关于javascript - 使用 ionic-filter-bar 进行 ionic 输入 - 无法引用 $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30879262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com