【问题标题】:How to properly apply KO binding the following example如何正确应用 KO 绑定以下示例
【发布时间】:2014-11-20 14:33:15
【问题描述】:

基本上,我在 KO 中有 viewModel 有 2 个值的数组,当单击 <a> 元素时(单击第一个 li>a "Val1"<main class="stl1">... 和很快)。奇怪的是,<main> 什么都没发生:

<script>
        var mainViewModel = function () {
            var self = this;

            self.classArr = ['stl1', 'stl2'];
            self.cssUsed = ko.observable(0);

            self.getClass = function ( data, event ) {
                var dat = event.target.value;
                self.cssUsed = self.classArr[dat];
                console.log( dat + ' : ' + self.cssUsed );
            }

        }
        ko.applyBindings( new mainViewModel() );
</script>    

<div class='page'>
    <header>
       <nav>
         <ul >
           <li><a href="#" data-bind="value: 0, click: getClass">Val1</a></li>
           <li><a href="#" data-bind="value: 1, click: getClass">Val2</a></li>
         </ul>

      </nav>
   </header>

  <div id='maincontent'>
          <main data-bind="css: cssUsed" >
              <div class="center"></div>
          </main>
  </div>
</div>

【问题讨论】:

    标签: javascript html css data-binding knockout.js


    【解决方案1】:

    你几乎是对的。问题是您以错误的方式分配值。而不是

    self.cssUsed = self.classArr[dat];
    

    试试

    self.cssUsed(self.classArr[dat]);
    

    看看here

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2020-09-09
      • 2015-07-22
      • 1970-01-01
      • 2015-04-09
      • 2011-12-29
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      相关资源
      最近更新 更多