未捕获TypeError:对象[object Object]没有方法'dataBind' 获取此错误需要将数据绑定与表示(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>
答案 0 :(得分:1)
dataBind函数是不显眼的Knockout库的一部分,默认情况下它不是jQuery。
您需要添加对您网页的引用才能使用它。这就是为什么你得到'没有方法dataBind'错误。
[不引人注目的淘汰赛] http://userinexperience.com/?p=689
答案 1 :(得分:0)
除非你使用的是jQuery插件,否则你没有在示例中显示,没有jQuery dataBind函数
将数据绑定应用于html元素本身。变化
<p id='ticketOutput'></p>
到
<p id='ticketOutput' data-bind=" template: 'ticketTemplate' "></p>
并在应用绑定之前删除该$ .dataBind调用
同样为“#tickets”数据绑定做同样的事情
编辑:实际上这个问题存在很多问题,所以我做了一个jsfiddle显示正确的方法: