我不确定我正在做的是正确的角度方式,我有以下JSFiddle 显示在重复查询结果中的行。
使用Javascript:
printMax
HTML:
function updateSearch(search) {
console.log(search);
document.getElementById('searchFor').value = search;
}
function ExampleController($scope) {
$scope.profiles = [{
Company_Name__c: 'John & Co',
Events_per_year__c: '1-4',
Delegates_Each_Year__c: '10-50',
Type_of_Events__c: 'Corporate event'
}, {
Company_Name__c: 'Maritis',
Events_per_year__c: '5-10',
Delegates_Each_Year__c: '151-300',
Type_of_Events__c: 'Association'
}, {
Company_Name__c: 'Mike & Co',
Events_per_year__c: '5-10',
Delegates_Each_Year__c: '1000+',
Type_of_Events__c: 'Corporate event'
}, {
Company_Name__c: 'Adam & Co',
Events_per_year__c: '5-10',
Delegates_Each_Year__c: '151-300',
Type_of_Events__c: 'Association'
}, {
Company_Name__c: 'Juliesss',
Events_per_year__c: '5-10',
Delegates_Each_Year__c: '301-500',
Type_of_Events__c: 'Team building'
}, {
Company_Name__c: 'Juliet',
Events_per_year__c: '20+',
Delegates_Each_Year__c: '301-500',
Type_of_Events__c: 'Association'
}];
}
angular.module('searchProfile',[]);
我有一个过滤器,工作正常。但是我有一些下拉菜单,当更改它时会选择选项更新过滤器。不幸的是,当由于此操作而更改过滤器时,表格不是过滤器,我必须删除最后一个单词才能发生。
下面的图片更好地说明了它正在发生的事情
当下拉列表更改时,它会填充搜索的原始输入
在这种情况下删除最后一个“单词”后,表格被过滤了
答案 0 :(得分:1)
我已经分叉并更新了你的小提琴,所以它现在正在工作: http://jsfiddle.net/2gmn11os/
你遇到的问题是" onchange"事件正在对Angulars摘要周期外范围内的变量进行更改。这就是为什么你看到只有在直接更改输入字段时才应用更新的原因 - 这些更改通过ng-model指令处理,该指令启动循环并重新应用过滤器等。
您希望自己选择'阅读更像这样,以便改变他们的状态是Angular循环的一部分:
<select id="numberEvents" ng-model="events" class="form-control" ng-change="updateSearch(events)">
我也改变了代码,所以它也有点整洁,而不是在app结构之外的全局范围内使用该函数:)