Javascript knockout.js可观察数组绑定

Javascript knockout.js可观察数组绑定,javascript,knockout.js,Javascript,Knockout.js,这是我的密码 <div data-bind="foreach: baselist"> <div> <span data-bind="text: basename"></span> <div data-bind="foreach: subItems"> <span data-bind="text: subitemname"></span> <a href="#"

这是我的密码

<div data-bind="foreach: baselist">
<div>
    <span data-bind="text: basename"></span>
    <div data-bind="foreach: subItems">
       <span data-bind="text: subitemname"></span>
         <a href="#" data-bind="click: $parent.removecard">Del</a>
    </div>     
</div>
 <button data-bind="click:addChild">Add</button>
这是我要传递给viewmodel的数据。如何将基本列表包含在此数据中?它找不到基本列表

var initialData = [{
    { basename: "Danny", subItems: [
        { subitemname: "Mobile"},
        { subitemname: "Home"}]
    },
    { basename: "Sensei", subItems: [
        { subitemname: "Mobile"},
        { subitemname: "Home"}]
    }]; 

从您提供的html中,我可以看到结构是这样的

基本列表->{(基本名称),(子项->子项名称)}

因此,您似乎只需要在初始化期间将数据传递给viewModel。并删除括号
alert(list.basename)此处,因为这不是可观察的对象

var SimpleListModel2=函数(基本列表){
this.baselist=ko.observearray(baselist);
this.addChild=函数(列表){
警报(list.basename);
}.约束(本);
};
var initialData=[
{basename:“Danny”,子项:[
{子项名称:“移动”},
{子项名称:“主”}]
},
{basename:“老师”,分项:[
{子项名称:“移动”},
{子项名称:“主”}]
}]; 
ko.applyBindings(新的SimpleListModel2(initialData))

添加

您能解释更多吗?如何在initialData中包含baselist?以便将其传递给viewmodel
var initialData = [{
    { basename: "Danny", subItems: [
        { subitemname: "Mobile"},
        { subitemname: "Home"}]
    },
    { basename: "Sensei", subItems: [
        { subitemname: "Mobile"},
        { subitemname: "Home"}]
    }];