2012-05-10 3 views
2

я установки вид модели, как это:Knockout 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"> 
     . 
     . 

Я получаю сообщение об ошибке «Значение для привязки отправки должно быть функцией» для сопоставления для голосованияOnItem, но 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 ($ parent) трюк –

 Смежные вопросы

  • Нет связанных вопросов^_^