javascript - 如何使用 javascript 填写 ng-model 查询以过滤数据?

标签 javascript angularjs angular-ngmodel jqvmap

我使用 AngularJS 将数据存储在 JSON 中,并希望过滤显示在页面项目上的数据。每个项目都包含国家代码作为属性:

[
 {
  "id": "1",
  "code": "us"
 },
 {
  "id": "2",
  "code": "ca"
 }
]    

我想使用 Jquery VMap 来过滤项目。当我点击区域时,项目列表应该被过滤。当我使用简单的“输入”字段时,列表会被过滤。但是当我使用以下代码时,当我点击县时执行,没有任何反应:

onRegionClick: function(element, code, region)
 {
  document.getElementById("query").value = code;
  function updateQuery($scope) {
   $scope.query = code;
   $scope.$digest();
  }
 }

如何让 Angular 知道“query”的变化,或者有更好的解决方案吗? 链接到 fiddle :http://jsfiddle.net/47RLz/4/

最佳答案

试试这个:

onRegionClick: function(element, code, region)
 {
    var e = document.getElementById("query");
    var scope = $(e).scope();
    scope.$apply(function() {
        scope.query = code;
    });

 },

解释

在 Angular 中,您可以通过对 jQuery 元素调用 scope() 来检索任何元素的范围。拥有范围后,code 将分配给范围内的查询变量。

由于点击处理程序是在 Angular 上下文之外执行的,因此分配被包装在 $apply block 中以触发 $digest 循环并更新 View 。

Demo Fiddle

关于javascript - 如何使用 javascript 填写 ng-model 查询以过滤数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24593794/

相关文章:

Angular 2动态双向绑定(bind)

javascript - 谷歌地图标记类别过滤不起作用?

javascript - Angular : Show div content depending on which option chosen from drop down menu (ng-show/ng-switch)

javascript - 为什么 Javascript 的 OAuth 不需要客户端密码?

javascript - 如何让我的子菜单在 jQuery 悬停菜单中保持打开状态 - 请检查示例

javascript - 在 Angular JS 中计算销售价格

javascript - AngularJS 中的 Promise then 和绑定(bind)有什么区别?

javascript - 访问使用类的 ngModel 元素

用于为 youtube 视频禁用鼠标单击的 Javascript 代码

javascript - 使用 jQuery onclick 将数据传递到部分 View