Knockout.js 带KnockoutJS的语义UI选择下拉列表

Knockout.js 带KnockoutJS的语义UI选择下拉列表,knockout.js,semantic-ui,Knockout.js,Semantic Ui,那么,以前有人试过吗?有没有办法将语义UI下拉列表与KnockoutJS集成?最好使用select下拉选择,因为我想将其集成到我的表单中。是的,您想做什么 下面是一个例子: <div class="ui selection dropdown" id="ProjectDD"> <input type="hidden" name="project"> <i class="dropdown icon"></i> <div c

那么,以前有人试过吗?有没有办法将语义UI下拉列表与KnockoutJS集成?最好使用select下拉选择,因为我想将其集成到我的表单中。

是的,您想做什么

下面是一个例子:

<div class="ui selection dropdown" id="ProjectDD">
    <input type="hidden" name="project">
    <i class="dropdown icon"></i>
    <div class="default text">Project...</div>
    <div class="menu" data-bind="foreach: ProjectCollection">
        <div class="item" data-bind="text: name, attr: {'data-value':id}"> 
        </div>
    </div>
</div>

项目

我也遇到了同样的问题,找到了解决办法。问题似乎在于knockout.js生成的空选项值。所以,在敲除绑定后为选项赋值,然后初始化下拉列表解决了这个问题

//after ko.applyBindings
var i=1;
$("#dropdown > option").each(function() {
    this.value=i;
    i++;
});
$('.ui.dropdown').dropdown();

是的,你可以像这个HTML一样使用select

<div class="ui form">
    <div class="field">
        <select data-bind="options: optionsText,
                           value: selectedOption,
                           optionsCaption: 'Select Options'">
        </select>
    </div>
</div>

您可以看到演示

嗯,我尝试了您的解决方案,但对我无效。我尝试在select上使用convert方法。比如:
var ViewModel = function() {
    var self=this;
    self.optionsText=ko.observableArray(['Some','Thing','Like','This']);
    self.selectedOption=ko.observable();
    self.selectedOption.subscribe(function(newValue) {
        alert("Selected value " + newValue);
    });
};
ko.applyBindings(new ViewModel());