Javascript 是什么导致了敲除代码中的所有这些错误?

Javascript 是什么导致了敲除代码中的所有这些错误?,javascript,knockout.js,Javascript,Knockout.js,我一直在尝试不同的方法来实现以下任务,用户可以添加一个包含酒店集合/阵列的提案。(不使用arraymap或“with:”数据绑定) 功能提案(){ var self=这个; self.details=ko.可观察(“”); self.makmazarat=ko.可观察(“”); self.medmazarat=ko.可观察(“”); 自我费用=可观察的高成本(“”); self.hotelproposal=ko.observearray([]); self.addhotel=功能(酒店){ 自助

我一直在尝试不同的方法来实现以下任务,用户可以添加一个包含酒店集合/阵列的提案。(不使用arraymap或“with:”数据绑定)

功能提案(){
var self=这个;
self.details=ko.可观察(“”);
self.makmazarat=ko.可观察(“”);
self.medmazarat=ko.可观察(“”);
自我费用=可观察的高成本(“”);
self.hotelproposal=ko.observearray([]);
self.addhotel=功能(酒店){
自助酒店({
酒店名称:“,
签入:“,
结帐:“,
房间类型:“,
视图类型:“
});
}
}
功能酒店{
this.hotelname=ko.observable();
this.checkin=ko.observable();
this.checkout=ko.observable();
this.roomtype=ko.observable();
this.viewtype=ko.observable();
}
ko.应用绑定(新提案());
这是我的html:

   <h2>Contacts</h2>

<div>
    <table>
        <tr>
            <th>Details</th>
            <th>fee</th>
            <th>MakMazarat</th>
            <th>MedMazarat</th>
            <th>Hotels</th>
        </tr>
        <tbody>
            <tr>
                <td>
                    <input data-bind='value: details' />
                </td>
                <td>
                    <input data-bind='value: makmazarat' />
                </td>
                <td>
                    <input data-bind='value: medmazarat' />
                </td>
                <td>
                    <input data-bind='value: fee' />
                </td>
                <td>
                    <table>
                        <tbody data-bind="foreach: $root.hotelproposal">
                            <tr>
                                <td>
                                    <input data-bind='value: hotelname' />
                                </td>
                                <td>
                                    <input data-bind='value: checkin' />
                                </td>
                                <td>
                                    <input data-bind='value: checkout' />
                                </td>
                                <td>
                                    <input data-bind='value: roomtype' />
                                </td>
                                <td>
                                    <input data-bind='value: viewtype' />
                                </td>

                            </tr>
                        </tbody>
                    </table> <a href='#' data-bind='click: $root.addhotel'>Add hotel</a>

                </td>
            </tr>
        </tbody>
    </table>
</div>

<textarea data-bind='value: lastSavedJson' rows='5' cols='60' disabled='disabled'></textarea>
联系人
细节
费用
马马扎拉特
梅德马扎拉特
旅馆
尽管在JSFIDLE上我得到了一个错误,但在控制台上,我得到了68个错误。它说的是关于不使用我不理解的“建议”。错误是什么


jsiddle link:

有一件事你没有做,那就是使用你的酒店构造器(我把它大写了,因为构造器通常是大写的)。您还遗漏了一个“removePhone”函数,虽然您已从上面的代码中删除了它,但它已绑定在您的小提琴中

function酒店(){
this.hotelname=ko.observable();
this.checkin=ko.observable();
this.checkout=ko.observable();
this.roomtype=ko.observable();
this.viewtype=ko.observable();
}
职能建议({
var self=这个;
self.details=ko.可观察(“”);
self.makmazarat=ko.可观察(“”);
self.medmazarat=ko.可观察(“”);
自我费用=可观察的高成本(“”);
self.hotelproposal=ko.observearray([]);
self.addhotel=功能(酒店){
self.hotelproposal.push(新酒店());
}
self.removePhone=功能(酒店){
自。酒店建议书。移除(酒店);
}
}
ko.应用绑定(新提案())

联络
细节
费用
马马扎拉特
梅德马扎拉特
旅馆

“它说了些什么”错误到底是什么?还有一个指向您的JSFIDLE的链接可能是有益的。
with:info
,但是您的视图模型上没有名为
info
的属性运行代码时看到的错误是:function(){return info}“无法处理绑定”“消息:信息未定义与初始错误无关,但您的
addhotel
方法可能应该推送一个
new hotel()
,而不是对象文字,以便其属性是可观察的。@JamesThorpe因此,从您所说的代码应该是:self.addhotel=function(hotel){self.hotelproposal.push(new hotel())}