Knockout js订阅表现不同

时间:2013-10-07 07:33:45

标签: javascript knockout.js

我在我的应用程序中使用subscribe我使用三个订阅前两个工作正常,但我添加订阅的最后一个observable不能正常工作。

  // 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>

0 个答案:

没有答案