我在我的应用程序中使用 subscribe 我使用三个 subscribe 前两个效果很好,但我添加的最后一个可观察的 subscribe 不能按我想要的方式工作。
// Listen to likelihood so that everytime it change it will also change the RiskLevel
self.Likelihood.subscribe(function (newValue) {
self.RiskLevelName(GetRiskLevel(newValue, self.Consequence()));
});
self.Consequence.subscribe(function (newValue) {
self.RiskLevelName(GetRiskLevel(self.Likelihood(), newValue));
});
当我更改可能性或后果时,它会更改 RiskLevelName 的值,它工作得很好。我在
self.RiskLevelName(GetRiskLevel(newValue, self.Consequence()));
我注意到当我改变可能性的值时它没有加热断点。有趣的是它改变了 self.RiskLevelName 的值。
我添加了另一个代码来订阅帐户,但它不起作用。我在控制台中没有收到任何错误
self.Account.subscribe(function (newValue) {
console.log(newValue);
});
这是我将它们绑定到我的 DOM 元素的方式
<div class="span6">
<div class="control-group" id="likelihoodModalControlGroup">
<label class="control">Likelihood</label>
<div class="controls">
<select id="likelihood" class="input-large custom" data-bind="value:Likelihood, options:$root.LikelihoodList, optionsValue:'Key', optionsText:'Value', optionsCaption:'Select Likelihood'">
<option value="0">Select Likelihood</option>
</select>
</div>
</div>
</div>
<div class="span6">
<div class="control-group" id="consequenceModalControlGroup">
<label class="controls">Consequence</label>
<div class="controls">
<select id="consequence" class="input-large custom" data-bind="value:Consequence, options:$root.ConsequenceList, optionsValue:'Key', optionsText:'Value', optionsCaption:'Select Consequence'">
<option value="0">Select Consequence</option>
</select>
</div>
</div>
</div>
<div class="span6">
<div class="control-group" id="AccountModalControlGroup" >
<label>Account</label>
<div class="controls">
<select class="input-large custom" data-bind="value:Account, options:$root.ProjectList, optionsValue:'Key', optionsText:'Value', optionsCaption:'Select Account'">
<option value="0">Select Account</option>
</select>
</div>
</div>
</div>