【问题标题】:DRY up ng-model干燥 ng-model
【发布时间】:2016-05-18 01:40:10
【问题描述】:

我有一个小型网络应用程序,它接受来自人类的input 来创建搜索参数。我正在使用ng-model-options 去抖动ng-change 函数来执行搜索。

我在表格的列名旁边有一个小箭头,可以让用户进行排序(有三个图标 - up-downupdown,用于使用 ng-class 显示的 sort_field 和 sort_order);我想对这些进行更改,并在使用 debounce 稍作延迟后执行搜索。问题是我不确定如何使用 ng-model 将特定参数绑定到这些图标。我不希望有人敲击排序图标并导致服务器或浏览器崩溃。

我宁愿在页面上设置一个位置,上面写着要观察search_param 对象,并在它发生变化500 毫秒后触发搜索。这样,当用户完成编辑它们时将调用任何输入字段或排序选择,这会触发将这些参数发送到端点的函数。

AngularJS 的策略是什么?现在所有输入字段都绑定了search_param 对象中的一个字段,并让ng-model-options 在更改时去抖动。这是很多重复的代码。

【问题讨论】:

  • 你在任何地方都对ng-change 使用相同的函数吗?在这种情况下,您可以使用$timeout,如果队列中没有任何搜索,您可以使用$timeout 开始搜索。如果有,只需取消$timeout 并开始一个新的。

标签: javascript angularjs debouncing


【解决方案1】:

我最近回答了某人关于表格的问题,以及为了获得非常基本的功能(排序、搜索、分页)必须付出的努力和工作量。

如果有一个非常棒的库供您使用,为什么还要重新发明轮子: 角度数据表

我在这里发布了一个完整的解决方案,供您使用从 json 源中提取数据:Ng-repeat trying to create a counter index

在您的情况下,您需要通过 Datatable 网站上的服务器端处理文档来正确格式化数据:https://datatables.net/manual/server-side

【讨论】:

    猜你喜欢
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    相关资源
    最近更新 更多