0

Knockout.js 3.2.0 を使用して、observableArrayを正常にバインドするために戦ってきましたが、 withバインディングに絞り込みました。Foreachには問題はありませんが、 Uncaught ReferenceError: Unable to process binding "with: function (){return contactLists }"というエラーがスローされます。

何が起こっているのか理解するのを手伝ってくれる人はいますか?

これは機能します:

<!-- ko foreach: contactLists -->
    <p data-bind="text: title"></p>
<!-- /ko -->

これはしません:

<!-- ko with: contactLists -->
    <p data-bind="text: title"></p>
<!-- /ko -->

ko.observableArrayおよびapplyBindings宣言:

var viewModels = {
        contactLists: ko.observableArray([new ContactList({title: "This Is List #1", subCount: 4321}), new ContactList({title: "List #2", subCount: 9876}), new ContactList({title: "jList #3", subCount: 1234})])
    }

    ko.applyBindings(viewModels);

助けてくれてありがとう!

4

1 に答える 1

0

「with」バインディングは配列では機能しません。機能する要素を指定する必要があります。例:

<!-- ko foreach: contactLists -->
  <!-- ko with: data -->
    <p data-bind="text: gender"> </p> 
  <!-- /ko -->
<!-- /ko -->


function ContactList(data) {
  this.title = data.title;
  this.subCount = data.subCount;
}

var viewModels = {
  contactLists: ko.observableArray([
    {title: "This Is List #1", data: { subCount: 4321, gender: "male"}},
    {title: "List #2", data: { subCount: 5321, gender: "female"}},
    {title: "jList #3", data: { subCount: 1221, gender: "any"}}])
}

ko.applyBindings(viewModels);

ペンを見る

于 2014-12-19T17:44:29.123 に答える