问题标签 [observable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
246 浏览

knockout.js - 淘汰赛 - 过滤我的数据有一点问题

编辑:我认为问题出在我的 self.providers = ko.computed() 上,我在单击过滤器按钮时覆盖了我的提供程序数组;

我有两个问题,在 HTML 窗格中都有所有内容,因为我在本地开发所有内容,并且将整个文件复制/粘贴到 jsfiddle 中而不是将其拆分出来更容易。

我还在一个相当大的虚拟数据对象中存根。 这从第 110 行开始,因此如果您在本地复制/粘贴/运行它,您肯定需要一个可以最小化该数据对象的编辑器

第一个小提琴位于http://jsfiddle.net/82cK7/并且似乎工作正常,但它是“实时”过滤。我刚从提供者名称过滤开始,然后也添加了 jquery UI datepicker 来进行日期过滤。当您在绿色过滤器区域进行任何更改时,这将过滤数据表。

这里的相关代码是第196 行的self.filterClaims

第二个小提琴位于http://jsfiddle.net/tq8zc/并不能很好地工作。在您单击“过滤器”按钮之前,此处的过滤不会启动(这是我真正想要的行为)。它过滤了表格,但它也炸毁了我的self.providers,它为该选择/下拉列表生成了一个唯一的提供者名称列表。因此,在您过滤它之前,您有一个包含多个提供者名称的列表。过滤后,您只有在点击“过滤器”之前选择的提供商。

这里的相关代码是第166 行的self.claimsFiltered

我觉得我错过了一些非常明显的东西,我想知道我是否可以让另一只眼睛看着代码。

非常感谢您的帮助!

0 投票
2 回答
1117 浏览

c# - Observable.Zip 当要压缩的序列数在运行时未知时

我需要为审批流程建模。之前很简单。两个角色必须批准某件事,然后我们可以继续下一步:

但现在有一个新要求:批准某事所需的角色数量可能会有所不同:

我觉得我在这里遗漏了一些非常明显的东西......谁能指出我正确的方向?

编辑

澄清一下:批准过程是基于每个项目的。批准到达的顺序是未定义的。我们不在乎一个角色是否多次批准一个项目。

0 投票
1 回答
575 浏览

knockout.js - 模板中的 Knockout.js $parents 键名并删除 observables

我有两个关于淘汰赛的简单问题:

  1. 我如何获得 $parents 密钥,例如。如果我的视图模型是:

    我有 3 个模板,第一个模板渲染 ModelA,第二个 ModelB 和第三个 ModelC,如何在 ModelC 模板中获得以下内容:

    /li>
  2. 如何在运行时从 ModelC 中删除 observable someprop。我试图将它嵌入到 ModelC 模板中:

    这在根页面中

    但它不工作。

0 投票
2 回答
23891 浏览

data-binding - 更改下拉更改 Knockout Js 上的可观察值

如果车辆是新的或使用过的,我有这个下拉菜单。

这个输入:

如果选择的下拉列表中的值是新的,则必须禁用输入,如果使用,则应启用输入,但如果我输入一个值,observable 将获取该值,如果我将下拉值更改为 new,则 observable 必须为零.

0 投票
2 回答
2932 浏览

binding - 在 knockout.js 中绑定两个 observable

我有两个简单的可观察对象,例如,

我希望他们表现得像一个人,所以当其中一个发生变化时,另一个也会发生变化。

我知道在一般情况下最好只使用一个 observable 并将其绑定到几个 dom 元素。但就我而言,这些可观察对象存在于不同的模板和对象中,因此它们不能是一个变量。

目前我订阅一个可观察到另一个,反之亦然:

但是,当您更改一个 observable 的值时,它会更新第二个,但这会导致连锁反应并再次无限更新第一个。

如何在两个单独的 observable 之间设置双向绑定,当您修改另一个时设置一个的值而不导致无限循环?

0 投票
2 回答
1661 浏览

javascript - 使用 knockout.js 将 css 类绑定到 Observable Array item.chosen 值

我对 Knockout.js 还很陌生,所以我可能只是遗漏了一些东西。我正在尝试创建一组用作按钮的 div,其中它们的“选定”状态反映了数组中项目的子值。

看到这个小提琴:http: //jsfiddle.net/bleiddyn/RepnY/

摘抄:

div 的初始显示是正确的。似乎我可以使单击事件更改可观察数组中的值而不会出现问题。但是,显示的 div 不会更改 css 类以响应此问题。

我意识到作为数组中的项目的对象的子对象本身不是可观察的。但是,我对 valueHasMutated() 的调用不应该强迫这个问题吗?这也可能不是完成该行为的最优雅的方式。

有人想帮助学习 javascript 的人吗?

0 投票
5 回答
46059 浏览

knockout.js - 在订阅相同的 observable 时获取 observable 的先前值

在淘汰赛中是否有可能在订阅该 observable 之前获取 observable 的当前值,然后再接收新值?

例子:

0 投票
1 回答
389 浏览

f# - 具有副作用的 F# 可观察过滤器

我有许多事件被合并到一个执行某些命令的 observable 中。如果命令成功,则会产生一些结果。此外,应记录该命令。

就代码而言,这看起来像

该函数exec_action会导致一些副作用,例如编辑树视图。如果成功,则属性OutlineEdited设置为true

我希望用类似的东西来遵循这个

但事实证明Observable.filter每个订阅的观察者执行一次。这意味着副作用将重复出现。

您能否建议另一种方法来实现相同的结果而无需exec_action执行两次?如果可能的话,我希望避免使用可变变量。

0 投票
3 回答
4776 浏览

css - Ember.js - 根据对象属性更新 CSS 宽度

正如@andorov 的回答中提到的,OP 的理想代码(<div style="width:{{model.width}}">现在几乎只适用于 Ember 1.10

我是 Ember.js 的新手,我发现动态更改 CSS 很困难。这是一个例子来解释我的意思:

下面的代码不起作用,但它解释了我的目标。使用 Handlebars 模板,我想完成这个:

换句话说,我只想在属性更改<div>时获得更新的宽度。objWidth

0 投票
1 回答
269 浏览

javascript - KnockoutJS 无法将输入字段设置为假值

如何将 an 的值设置<input>false真正的作品很好。

模型:

HTML: