保留 Rxjs 生成的复选框的状态

2024-01-04

基于在下拉列表中选择不同的项目,我生成带有复选框的项目的 html。如何保留复选框的状态,即每当下拉列表中的值发生变化时选中/取消选中。请参阅此处的 plunkrhttps://plnkr.co/edit/PUG3g7dfTbQjPyIgGLzh?p=preview https://plnkr.co/edit/PUG3g7dfTbQjPyIgGLzh?p=preview

Steps:

- uncheck 'abc2'
- change dd value to 'international'
- again change the dd value to 'local'
- here 'abc2' must be unchecked...

这是我的代码:

var data = [
    {type: 'local', name: 'abc1', location: 'xyz1', checked: true},
    {type: 'local', name: 'abc2', location: 'xyz2', checked: true},
    {type: 'international', name: 'abc3', location: 'xyz3', checked: true},
    {type: 'local', name: 'abc4', location: 'xyz4', checked: true},
    {type: 'local', name: 'abc5', location: 'xyz5', checked: true},
    {type: 'international', name: 'abc6', location: 'xyz6', checked: true},
    {type: 'international', name: 'abc7', location: 'xyz7', checked: true}
];

var $container = $('#container');
var $splitDD = $('#testDD');
var splitDD$ = Rx.Observable.fromEvent($splitDD, 'change')
    .startWith($splitDD.val())
    .map(function(e) { $container.html(''); return e.target ? e.target.value : e;})
    .switchMap(function(v) {return data;})
    .filter(function(v) {
      return v.type == $splitDD.val()
    })
    .map(getHtml)
    .subscribe(function(html) {
            $container.append(html);
    });


function getHtml(v) {
    var checked = v.checked ? 'checked="checked"' : '';
    var html = '<label><input class="point" name="' + v.name + '" type="checkbox" ' + checked + '>' +
        '<span>' + v.name + ' </span>' +
        '</label>';
    return html;
}

这里就解决了:https://plnkr.co/edit/72ciT20saCpLCLFNBbGv?p=preview https://plnkr.co/edit/72ciT20saCpLCLFNBbGv?p=preview

Steps:

added onclick监听复选框,当复选框更改时,数组正在更新。

1) in getHTML()

var html = '<label><input onclick="CheckboxPreserve(this);"   ......

2)在scripts.js底部添加:

function CheckboxPreserve(el){
  var $this = $(el);
  for (var key in data) {
      if (data[key]['name']==$this.attr("name")) {
          data[key]['checked']=$this.is(':checked');
      } 
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保留 Rxjs 生成的复选框的状态 的相关文章

  • 使用 TypeScript 将 RxJS 运算符合并为新运算符

    我经常发现自己向可观察量添加相同的运算符序列 例如 observable do x gt console log some text x publishReplay refCount 我正在寻找一种方法将这 3 个运算符组合成一个小型可重用
  • RxJS 中是否存在与“race”运算符相反的操作符?

    我有两个可观察量 我想听最后发出第一个值的那个 是否有一个运算符 像这样的东西 let obs1 Rx Observable timer 500 500 let obs2 Rx Observable timer 1000 1000 I wa
  • RxJS5 随着时间的推移发出数组项并永远重复

    我想随着时间的推移发出数组项 每次发出之间间隔一秒 并且当所有项都已发出时 一遍又一遍地重复 我知道该怎么做 但我想知道是否有比 更简洁的东西 const MY ARRAY one two three const item Rx Obser
  • 使用 RxJS 进行 Angular 2 轮询

    我正在尝试轮询 RESTful 端点来刷新我的实时聊天消息 我知道实时聊天的最佳方法是 Websockets 我只是想了解 RxJS 如何与 Angular 2 配合使用 我想每秒检查一次新消息 我有以下代码 return Rx Obser
  • 如何使用 Rx.Observable.prototype.let 运算符?

    的例子和解释let操作员 https github com Reactive Extensions RxJS blob master doc api core operators let md https github com Reacti
  • 我如何 - 长轮询和调度程序?

    我正在尝试安排一个长轮询机制 我想知道是否可以利用调度程序来实现这一点 到目前为止 这就是我一直在想的 通过计时器进行调度 但仅在上一次迭代已经完成的情况下才将下一次迭代排入队列 当上一次迭代完成时 将下一次迭代排入队列 我一直在查看现有的
  • rxjs 5 中的发布和多播运算符有什么区别?

    我正在阅读 rxjs 手册 我对多播和发布运算符之间的区别有点困惑 他们看起来很相似 我在阅读时也有同样的问题http reactivex io rxjs manual overview html http reactivex io rxj
  • RxJS5 TypeScript 打字失败

    I run tsc在我的项目中 我收到与 RxJS5 库相关的这些错误 tsc node modules rxjs observable FromEventObservable d ts 11 39 error TS2304 Cannot
  • Angular 2 - RxJS 切换映射问题

    我试图在我的应用程序中拥有无限滚动部分 为了实现这一目标 我正在使用该组件 https www npmjs com package angular2 perfect scrollbar处理滚动事件等 当滚动到达 div 底部时 我将调用一个
  • 如何使用 RXJS 5.5.2 更新更好地捕获/执行/清空

    正如 ionic Angular 3 9 0 发行说明中所述 https github com ionic team ionic blob master CHANGELOG md https github com ionic team io
  • BehaviourSubject 初始值不适用于 share()

    share 运算符应用于BehaviorSubject BehaviourSubject 有初始值 目标是创建单个共享订阅 但是当BehaviorSubject有初始值时 这种共享订阅似乎不起作用 得到意想不到的结果 代码如下所示 let
  • RxJS5 最终确定运算符未调用

    当我的所有可观察量都被执行时 我试图触发回调 在我的另一个较旧的项目中 我使用了finally就像这样 这就像一个魅力 this myService callDummy finally gt console log Works subscr
  • 根据特定条件连接 RxJ 中的两个可观察流

    我有两个对象流 帐户和余额 我需要根据以下内容合并 加入 两个流id and account id var accounts Rx Observable from id 1 name account 1 id 2 name account
  • Angular 服务 - 返回的对象类型是对象,而不是指定的通用类型

    我有一个 angular5 服务 它执行 HTTP 获取并返回特定类型 如下所示 public getProductByIDproductId string Observable
  • 热和冷可观察量:是否存在“热”和“冷”运算符?

    我回顾了以下SO问题 什么是热观测值和冷观测值 https stackoverflow com questions 2521277 what are the hot and cold observables 总结一下 冷可观察对象在有观察者
  • 错误 rxjs_Observable__.Observable.forkJoin 不是函数?

    我在用Rxjs in an angualr cli应用 在viewer component ts中 Other Imports import Observable from rxjs Observable omitting for brev
  • 重新发送请求角度2

    在 Angular 2 应用程序中 每个对 API 的请求都有带有令牌的标头 以防令牌过期 API 会使用 401 http 代码进行响应 我有一种更新令牌的方法 但是在获取新令牌的过程中如何重新发送先前的请求以暂停其他请求 您可以延长Ht
  • Angular 5 和 Rxjs:等待所有订阅

    我想在做某事之前等待所有 http 请求完成 在 Angular 5 之前 我使用的是 Promise 和Promise All 使用 Angular 5 和新的HttpClient 我将我的承诺转化为可观察到的结果 如果我理解正确的话 我
  • 立即开始首次调用 IntervalObservable

    我正在使用一个IntervalObservable连续调用我的应用程序的服务器端 我可以订阅和取消订阅 Oberservable 一切正常 但有一个例外 对服务器的第一次调用会延迟 但我希望它是即时的 该人的行为IntervalObserv
  • Angular 2 RxJS Observable:重试,429 状态除外

    我已经编写了 Observable 来自 HTTP 请求 以在失败时重试 不过 我想not如果服务器响应为重试429 Too many requests error 无论如何 当前的实现都会重试两次 间隔 1 秒 return this h

随机推荐