2012-05-10 127 views
2

我設置視圖模型像這樣「一個提交綁定必須是一個函數值」:淘汰賽JS錯誤:

function viewModel() { 
    var self = this; 
    self.voteOnItem = function (sender, e) { .. } 

    . 
    . 
} 

var model = new viewModel(); 
ko.applyBindings(model); 

在我看來,我有這樣的一個模板內:

<script type="text/html" id="X"> 
    <ul id="" data-bind="foreach:items"> 
<li> 
    <div style="float:left;"> 
      <form action='Url' method="post" data-bind="submit:$parent.voteOnItem"> 
     . 
     . 

我收到一個錯誤「提交綁定的值必須是一個函數」,以映射到voteOnItem,但voteOnItem顯然是一個函數......任何想法爲什麼錯誤?

+1

我會確保你是在正確的範圍時你正在做的提交具有約束力。你得到的錯誤是你在'$ parent'沒有'voteOnItem'屬性時會看到的東西(就像你放了'$ parent.blah'一樣)。一個簡單的方法就是在你的綁定的附近放一個'

'來查看該級別的數據。另外要驗證的是,你把所有的標籤關閉,沒有使用任何壞的自動關閉標籤,如''我 –

+0

會嘗試JSON招...謝謝。 –

+0

@RPNiemeyer就是這樣,非常感謝!如果你想,將你的答案複製到一個帖子,我將其標記爲答案。 –

回答

4

我會確保你是在正確的範圍時你正在做的submit結合。

你得到的錯誤是你會看到當$parent沒有voteOnItem屬性(如果你把$parent.blah)。

一個簡單的方法來看到的是隻放了<div data-bind="text: ko.toJSON($parent)"></div>接近你的綁定來查看數據,在該水平。

另外要驗證的是,你把所有的標籤關閉,沒有使用任何壞的自動關閉標籤,如<span />

+0

添加,在我的上下文中,我不得不使用$ root甚至到更高的範圍。 –

+0

+ 1爲ko.toJSON($父母)技巧 –