基本上,我在KO中有一个包含2个值的数组的viewModel,我需要在点击main
元素时更改元素(<a>
)的css类prop(当第一个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>
答案 0 :(得分:1)
你几乎是对的。问题是你以错误的方式分配了价值。而不是
self.cssUsed = self.classArr[dat];
尝试
self.cssUsed(self.classArr[dat]);
查看here