ng-grid 单击网格时影响过滤
ng-grid filtration affected when clicking on the grid
我开发了一个使用 ng-grid 以表格格式显示数据的代码。在这里,需要应用自定义过滤器。网格中有两列,即 ID 和 Title。还有一个包含标题的建议输入框。当从输入框中 selected 任何标题时,应根据 selected 标题过滤网格中的数据。
下面是实现功能的代码。
HTML
<div ng-app="myApp" ng-controller="MyCtrl">
<div class="gridStyle" ng-grid="gridOptions"></div>
<div style="position: relative; height: 80px;">
<input type="text" name="country" id="autocomplete-ajax" style="position: absolute; z-index: 2; background: transparent;"/>
<input type="text" name="country" id="autocomplete" disabled="disabled" style="color: #CCC; position: absolute; background: transparent; z-index: 1;"/>
</div>
JS
// binding unique names to the suggestions pluggin for filter.
$('#autocomplete-ajax').devbridgeAutocomplete({
lookup: $scope.unique,
minChars: 1,
onSelect: function (suggestion) {
console.log(suggestion);
$scope.filterSearch('Title',suggestion.value);
},
showNoSuggestionNotice: true,
noSuggestionNotice: 'Sorry, no matching results'
});
// configuring ng-grid options
$scope.gridOptions = {
data: 'videoColl',
showGroupPanel: false,
jqueryUIDraggable: false,
showFilter: false,
multiSelect:false,
filterOptions: $scope.filterOptions
};
$scope.filterSearch = function(searchField,searchText) {
var filterText = searchField + ':'+ searchText;
$scope.filterOptions.filterText = filterText;
};
当我 select 来自 autocomplete-ajax
的任何标题时,它会过滤数据,但当我 select 任何标题时,更改不会显示在网格中,相反,数据已更改在 select 任何标题后单击网格时在网格中。
我缺少什么才能完美地工作?
您在更改过滤器数据后错过了 $scope.$apply()
来电。
jQuery 超出了 angular 的范围,因此您需要手动调用摘要循环以将数据更改应用到您的 html。
我开发了一个使用 ng-grid 以表格格式显示数据的代码。在这里,需要应用自定义过滤器。网格中有两列,即 ID 和 Title。还有一个包含标题的建议输入框。当从输入框中 selected 任何标题时,应根据 selected 标题过滤网格中的数据。
下面是实现功能的代码。
HTML
<div ng-app="myApp" ng-controller="MyCtrl">
<div class="gridStyle" ng-grid="gridOptions"></div>
<div style="position: relative; height: 80px;">
<input type="text" name="country" id="autocomplete-ajax" style="position: absolute; z-index: 2; background: transparent;"/>
<input type="text" name="country" id="autocomplete" disabled="disabled" style="color: #CCC; position: absolute; background: transparent; z-index: 1;"/>
</div>
JS
// binding unique names to the suggestions pluggin for filter.
$('#autocomplete-ajax').devbridgeAutocomplete({
lookup: $scope.unique,
minChars: 1,
onSelect: function (suggestion) {
console.log(suggestion);
$scope.filterSearch('Title',suggestion.value);
},
showNoSuggestionNotice: true,
noSuggestionNotice: 'Sorry, no matching results'
});
// configuring ng-grid options
$scope.gridOptions = {
data: 'videoColl',
showGroupPanel: false,
jqueryUIDraggable: false,
showFilter: false,
multiSelect:false,
filterOptions: $scope.filterOptions
};
$scope.filterSearch = function(searchField,searchText) {
var filterText = searchField + ':'+ searchText;
$scope.filterOptions.filterText = filterText;
};
当我 select 来自 autocomplete-ajax
的任何标题时,它会过滤数据,但当我 select 任何标题时,更改不会显示在网格中,相反,数据已更改在 select 任何标题后单击网格时在网格中。
我缺少什么才能完美地工作?
您在更改过滤器数据后错过了 $scope.$apply()
来电。
jQuery 超出了 angular 的范围,因此您需要手动调用摘要循环以将数据更改应用到您的 html。