Javascript 使用现有id值剔除级联下拉列表

Javascript 使用现有id值剔除级联下拉列表,javascript,knockout.js,Javascript,Knockout.js,我有两个从可观察阵列填充的下拉列表。第二个由第一个结果过滤。这个很好用。即使第二个id的值是在绑定之前设置的,绑定似乎会擦除它,并且不会再次更改它 我也不明白为什么它不会显示viewModel的json html 我添加了一个计算方法,该方法返回JSON并将其绑定到段落标记的HTML中,结果成功了 <p data-bind="html: jsonText"></p> viewModel.jsonText = ko.computed(function(){ re

我有两个从可观察阵列填充的下拉列表。第二个由第一个结果过滤。这个很好用。即使第二个id的值是在绑定之前设置的,绑定似乎会擦除它,并且不会再次更改它

我也不明白为什么它不会显示viewModel的json

html


我添加了一个计算方法,该方法返回JSON并将其绑定到段落标记的HTML中,结果成功了

<p data-bind="html: jsonText"></p>


viewModel.jsonText = ko.computed(function(){
    return ko.toJSON(viewModel);
}, viewModel);

viewModel.jsonText=ko.computed(函数(){ 返回ko.toJSON(viewModel); },视图模型);
在此处更新您的小提琴:


谢谢。我还是不明白为什么它不能以另一种方式工作???还有绑定问题。我不知道为什么它不起作用,但我怀疑ko.JSON()是不可观察的,所以不能绑定到它。另外,它不在视图模型上。
var data = {"PartNumber":"SAMPLE123456","Revision":"D","SequenceNumber":"1","SerialNumber":"SAMPLE123456D001","Description":"This is a test","SupplierID":"4","UsedTypeID":"U","UsedOnID":0} ;

var viewModel = ko.mapping.fromJS(data);

viewModel.UsageTypes = ko.observableArray( [{"UsedTypeID":"P","UsedType":"Product"},{"UsedTypeID":"S","UsedType":"Series"},{"UsedTypeID":"U","UsedType":"Unknown"}]);
viewModel.UsagesList = ko.observableArray(
[{"UsedTypeID":"P","UsedType":"Product","UsedonID":14,"UsedOn":"banana"},
 {"UsedTypeID":"P","UsedType":"Product","UsedonID":16,"UsedOn":"kjhkjhkj"},
 {"UsedTypeID":"P","UsedType":"Product","UsedonID":7,"UsedOn":"prod1234"},
 {"UsedTypeID":"P","UsedType":"Product","UsedonID":15,"UsedOn":"things"},
 {"UsedTypeID":"P","UsedType":"Product","UsedonID":20,"UsedOn":"thinkgs2"},
 {"UsedTypeID":"S","UsedType":"Series","UsedonID":17,"UsedOn":";lkgd;ldf"},
 {"UsedTypeID":"S","UsedType":"Series","UsedonID":18,"UsedOn":"df;lkjdflk"},
 {"UsedTypeID":"S","UsedType":"Series","UsedonID":13,"UsedOn":"fdsdfsdf"},
 {"UsedTypeID":"S","UsedType":"Series","UsedonID":12,"UsedOn":"mn,m,m,"},
 {"UsedTypeID":"S","UsedType":"Series","UsedonID":19,"UsedOn":"rubberchicken"},
 {"UsedTypeID":"S","UsedType":"Series","UsedonID":11,"UsedOn":"sdfsdfsdf"},
 {"UsedTypeID":"U","UsedType":"Unknown","UsedonID":0,"UsedOn":"Unknown"}]);

viewModel.UsageFiltered = ko.computed(function(){
    var filter = this.UsedTypeID();
    if (!filter){
        return this.UsagesList();
    } else {
        return ko.utils.arrayFilter(this.UsagesList(), function(item) {
            return filter === item.UsedTypeID    
        }); 
    }
}, viewModel);

ko.applyBindings(viewModel);
<p data-bind="html: jsonText"></p>


viewModel.jsonText = ko.computed(function(){
    return ko.toJSON(viewModel);
}, viewModel);