KnockoutJSで$indexを使用して、数字の代わりにアルファベットを表示したい。例:
A. item1
B. item2
C. item3
これどうやってするの??
KnockoutJSで$indexを使用して、数字の代わりにアルファベットを表示したい。例:
A. item1
B. item2
C. item3
これどうやってするの??
ニーズに合っている場合ol
は、list-style-type
ofを使用してこれを行うことができます。upper-alpha
例えば:
HTML:
<ol data-bind="foreach: items" class="alpha">
<li data-bind="text: $data"></li>
</ol>
CSS: </p>
.alpha {
list-style-type: upper-alpha;
}
JavaScript:
function ViewModel() {
this.items = ko.observableArray([
"Apples",
"Oranges",
"Bananas"
]);
}
var model = new ViewModel();
ko.applyBindings(model);
このフィドルを見てください:http://jsfiddle.net/jearles/RhmTb/19/
重要なのは、インデックスを文字に変換するためのビューモデルメソッドを作成することです。
<div data-bind="foreach: names">
<div>
<span data-bind="text: $root.indexLetter($index())"></span>.
<span data-bind="text: $data"></span>
</div>
</div>
-
var viewModel = {
names : ['one', 'two', 'three', 'four', 'five', 'six'],
indexLetter : function(index) {
return String.fromCharCode(65 + index);
}
}
ko.applyBindings(viewModel);