2012-07-05 35 views
-2

未捕獲的類型錯誤:對象[對象的對象]無方法「數據綁定」 葛亭此錯誤需要分離數據從呈現結合(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

大。請顯示一些代碼。 – Ryan 2012-07-05 13:48:55

+0

顯示一些代碼,而不僅僅是錯誤! – Sirko 2012-07-05 13:49:06

回答

1

dataBind函數是不引人注目的Knockout庫的一部分,它不會默認使用jQuery。

您需要添加對您的頁面的引用才能使用它。這就是爲什麼你會得到'沒有方法dataBind'的錯誤。

[不顯眼的淘汰賽] http://userinexperience.com/?p=689

+0

謝謝包括knockout.unobtrusive.js它工作:) – Ram 2012-07-06 09:59:45

0

除非你使用的jQuery插件,你沒有在示例中顯示,沒有jQuery dataBind函數

而是將數據綁定應用到html元素本身。更改

<p id='ticketOutput'></p> 

<p id='ticketOutput' data-bind=" template: 'ticketTemplate' "></p> 

和權利之前刪除$ .dataBind調用應用綁定

執行相同的 「#tickets」 數據綁定以及

編輯:其實這個問題有很多問題,所以我做了一個jsfiddle來顯示正確的方法:

http://jsfiddle.net/daedalus28/TAVgp/

+0

感謝它真的很有幫助,但希望從演示文稿中分離數據綁定。 JsFiddle幫助很多再次感謝:),錯過包括 - knockout.unobtrusive.js – Ram 2012-07-06 09:57:55

相關問題