アプリケーションでサブスクライブを使用しています。3 つのサブスクライブを使用しています。最初の 2 つは正常に機能しますが、最後にサブスクライブを追加したオブザーバブルが思い通りに機能しません。
// 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()));
Likelihood の値を変更しても、ブレークポイントが加熱されないことに気付きました。面白いことに、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>