未捕获的类型错误:对象[对象的对象]无方法“数据绑定”
未捕获的类型错误:对象[对象的对象]无方法“数据绑定” 葛亭此错误需要分离数据从呈现结合(HTML)未捕获的类型错误:对象[对象的对象]无方法“数据绑定”
<script type="text/javascript" src="/Scripts/knockout-2.1.0.js"></script>
<script type="text/javascript" src="/Scripts/jquery-1.7.2.js"></script>
Choose a ticket class:
<select id='tickets'></select>
<p id='ticketOutput'></p>
<script id="ticketTemplate" type="text/x-jquery-tmpl">
{{if chosenTicket}}
You have chosen <b>${ chosenTicket().name }</b>
($${ chosenTicket().price })
<button data-bind="click: resetTicket">Clear</button>
{{/if}}
</script>
<script type="text/javascript">
var viewModel = {
tickets: [
{ name: "Economy", price: 199.95 },
{ name: "Business", price: 449.22 },
{ name: "First Class", price: 1199.99 }
],
chosenTicket: ko.observable(),
resetTicket: function() { this.chosenTicket(null) }
};
$('#tickets').dataBind({
Uncaught TypeError: Object [object Object] has no method 'dataBind'
options: 'tickets',
optionsCaption: "'Choose...'",
optionsText: "'name'",
value: 'chosenTicket'
});
$('#ticketOutput').dataBind({ template: "'ticketTemplate'" });
ko.applyBindings(viewModel);
</script>
dataBind函数是不引人注目的Knockout库的一部分,它不会默认使用jQuery。
您需要添加对您的页面的引用才能使用它。这就是为什么你会得到'没有方法dataBind'的错误。
[不显眼的淘汰赛] http://userinexperience.com/?p=689
谢谢包括knockout.unobtrusive.js它工作:) – Ram 2012-07-06 09:59:45
除非你使用的jQuery插件,你没有在示例中显示,没有jQuery dataBind函数
而是将数据绑定应用到html元素本身。更改
<p id='ticketOutput'></p>
到
<p id='ticketOutput' data-bind=" template: 'ticketTemplate' "></p>
和权利之前删除$ .dataBind调用应用绑定
执行相同的 “#tickets” 数据绑定以及
编辑:其实这个问题有很多问题,所以我做了一个jsfiddle来显示正确的方法:
感谢它真的很有帮助,但希望从演示文稿中分离数据绑定。 JsFiddle帮助很多再次感谢:),错过包括 - knockout.unobtrusive.js – Ram 2012-07-06 09:57:55
大。请显示一些代码。 – Ryan 2012-07-05 13:48:55
显示一些代码,而不仅仅是错误! – Sirko 2012-07-05 13:49:06