title: Options and component trying to control descendant binding
body: <p>In the fiddle below, I am trying to have one of several components rendered based on a field in the data being iterated. I have defined these templates:</p>
  
  <pre><code>&lt;template id="select-template"&gt;
      &lt;select data-bind="style: {width: size}, value: value, options: options, optionsText: 'optTxt', optionsValue: 'optId'"&gt;&lt;/select&gt;
  &lt;/template&gt;
  &lt;template id="input-template"&gt;
      &lt;!--input type="text" data-bind="style: {width: size}, value: value" /--&gt;
      &lt;input type="text" data-bind="value: 'input'" /&gt;
  &lt;/template&gt;
  &lt;template id="mu-template"&gt;
      &lt;span data-bind="text: value"&gt;&lt;/span&gt;
  &lt;/template&gt;
  </code></pre>
  
  <p>And registered these corresponding components:</p>
  
  <pre><code>ko.components.register('input', {
      viewModel: InputModel,
      template: {
          element: 'input-template'
      }
  });
  ko.components.register('select', {
      viewModel: InputModel,
      template: {
          element: 'select-template'
      }
  });
  ko.components.register('mu', {
      viewModel: InputModel,
      template: {
          element: 'mu-template'
      }
  });
  </code></pre>
  
  <p>The viewmodel constructor they all use is:</p>
  
  <pre><code>function InputModel(params) {
      if (!('id' in params)) {
          throw "Model broke";
      }
      var keys = ['id', 'size', 'value', 'options'];
      for (var i=0; i&lt;keys.length; ++i) {
          var k = keys[i];
          if (k in params) {
              this[k] = params[k];
          }
      }
      console.debug("Model:", [this]);
  }
  </code></pre>
  
  <p>I have two issues:</p>
  
  <ol>
  <li>When the select template is being rendered, I get an error saying
  <code>Multiple bindings (options and component) are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.</code></li>
  <li>Probably related, if I don't do the error check/throw in <code>InputModel</code>, it gets called in an infinite loop with no parameters.</li>
  </ol>
  
  <p>What is going on here?</p>
  
  <p><a href="http://jsfiddle.net/6srq9yfc/" rel="nofollow">http://jsfiddle.net/6srq9yfc/</a></p>