0

バインディングを解析できない理由がわかりません。それぞれにコンテンツが含まれています。これはエラーメッセージです:

Uncaught Exception (js): Uncaught Error: Unable to parse bindings.
Message: ReferenceError: Users is not defined;
Bindings value: template: { name: 'grid', foreach: Users}

意見:

<div data-bind="foreach: RoleTypes">
            <h3><!--ko text: RoleName--><!--/ko--> (<!--ko text: UserCount--><!--/ko-->)</h3>
            <div id="gridView"  data-bind="template: { name: 'grid', foreach: Users}">
                <section id="Images">
                    <section id="users"></section>
                </section>
            </div>
        </div>

Javascript:

var getRoles = function () {
        Ajax.Get({
            Url: ...,
            DataToSubmit: {id: properties.Id },
            DataType: "json",
            OnSuccess: function (roleData, status, jqXHR) {
                // bind role types
                bindModel(roleData);

                Ajax.Get({
                    Url: ...,
                    DataToSubmit: { pageNumber: 1, id: properties.Id },
                    DataType: "json",
                    OnSuccess: function (userData, status, jqXHR) {

                    }
                });
            }
        });
    };

これを支援するために、JavaScript の他のどの部分を共有すればよいかわかりませんが、お知らせください。

4

2 に答える 2

1

属性foreachに引用符をdata-bind付けます。一部のブラウザはうるさいです。

于 2013-10-04T17:08:10.913 に答える
1

エラー メッセージは、ViewModel の配列内の 1 つ以上のオブジェクトにRoleTypesというプロパティがないことを意味しますUsers。VM を定義するコードを見ないと、その理由を推測することしかできませんがUsers、それぞれのサブプロパティではなくトップレベルのプロパティである可能性はありますRoleTypeか? その場合、 Knockout がどこを探すべきかを認識できるようUsersに、に置き換える必要があります。$root.Users

コメントに基づいて更新

の各要素には、特定のロールのユーザーが取り込まれるプロパティが呼び出されるRoleTypes必要があります。これを行うと、現在の反復要素のプロパティであるため、修飾する必要はありません。observableArrayUsersUsers$root

于 2013-10-04T18:19:33.927 に答える