Javascript 如何使用下拉选择值作为AngularJs中过滤器的参数?

Javascript 如何使用下拉选择值作为AngularJs中过滤器的参数?,javascript,jquery,angularjs,angular-filters,Javascript,Jquery,Angularjs,Angular Filters,Iam使用Select2下拉列表,该下拉列表不是Select上的过滤器:- 我的密码:- <div class="form-group"> <script type="text/javascript"> jQuery(document).ready(function($)

Iam使用Select2下拉列表,该下拉列表不是Select上的过滤器:-

我的密码:-

<div class="form-group">
                                    <script type="text/javascript">
                                            jQuery(document).ready(function($)
                                            {
                                                $("#select-res").select2();
                                        </script>
                                    <select class="form-control select" ng-model="displayName"  id="select-res">
                                        <option data-ng-repeat="objin objs" value="{{obj.displayName}}">{{obj.displayName}}</option>
                                    </select>
                                    <script>
                                        $('#select-res').select2().on('change', function(e) {
                                          var selectedval= $(this).val();
                                           alert(selectedval);
                                           // $("#filterselected").html(selectedval);
                                           // $("#filterselected").val(selectedval+' ');
                                            document.getElementById("filterselected").value = selectedval;
                                        });
                                    </script>
                                      <input id="filterselected" type="text" ng-model="displayName" />
                                </div>

jQuery(文档).ready(函数($)
{
$(“#选择资源”)。选择2();
{{obj.displayName}
$('select res').select2().on('change',函数(e){
var selectedval=$(this.val();
警报(selectedval);
//$(“#filterselected”).html(selectedval);
//$(“#filterselected”).val(selectedval+”);
document.getElementById(“filterselected”).value=selectedval;
});
我使用data ng model=“displayName”进行双向绑定

过滤代码:-

<div data-ng-repeat="obj in objs | filter:displayname" >
       Results ....
</div>

结果。。。。
我在Select2下拉列表中选择的选项不是为Filter参数输入的


我已将所选值写入一个文本框,数据绑定为ng model=“displayName”,但未进行筛选:-(

而不是使用select2库,您应该使用它作为角度版本

它在处理角度作用域时提供了更好的绑定。当您想在此处绑定更改事件时,只需使用
ng change
angular原生指令即可

标记

<select ui-select2 ng-model="number" data-placeholder="Pick a number" ng-change="changeSelect()">
    <option value=""></option>
    <option value="one">First</option>
    <option value="two">Second</option>
    <option value="three">Third</option>
</select>

弗斯特
第二
第三

问题可能是,jquery小部件可以附加额外的输入元素来破坏角度链接。如果是这样,我可以建议两种解决方案来尝试:

  • 使用角度用户界面/ui选择,而不是选择2
  • 如果您有点拒绝,请使用angular scopes$apply方法让angular知道发生了什么变化。我不知道您的html片段是否在控制器下,如果是,您可以在
    onchange
    处理程序中调用
    $apply(“displayName=”+selectedval+“”)

  • 也可能有许多其他原因,例如表单和筛选器位于不同的作用域

    您能给我发送一些ui-select2的参考Url吗。@PRASAD看看这个plunkr&这是github链接一个问题它是否支持更新操作..我的意思是当@Post操作中选择的值在更新时显示为Selected时是的,还是我们需要一些编码魔法?让我们来吧。嗨,Pankaj,我刚刚在我们的讨论窗口中发布了链接,请看一看,你能给我发送一些ui-select2的参考Url吗。