9

ノックアウト js を使用してスパン値を設定しています。

HTMLコード

<span id="spnQStreamChat" data-bind="text: $data.OnLineUserName"></span>

これは正常に機能しており、UI にユーザー名が表示されています。

その値をjsファイルから取得しようとしています。以下のコードを使用して

alert($(this).attr('data-bind'));

これは、次のテキストのような結果を提供しています: $data.OnLineUserName。私が割り当てたユーザー名が欲しいです。

UIではBhagirathiを表示しますが、jsではデータバインドに存在するコンテンツを表示します

jsファイルで名前(意味:Bhagirathi)を取得する方法

この問題を解決するのを手伝ってください

前もって感謝します

[編集]

$(document).on("click", ".btn-mini", function (e) {
    alert(ko.contextFor($('.btn-mini')[0]).$data.OnLineUserName);
    try {
        var connectionId = chatHub.server.getUserConnectionId($(this).attr('data-bind').username, sessionUserName);
    }
    catch (e) {
        //error
    }
});

[/編集]

4

1 に答える 1

12

要素のノックアウト コンテキストを取得するには、

ko.contextFor($('#spnQStreamChat').get(0))

これは次のようなオブジェクトを返します

ko.bindingContext {$parents: Array[1], $root: ViewModel, ko: Object, $data: SomeObject, $parentContext: ko.bindingContext…}

$data は $data オブジェクトです。したがって、名前を取得するには、次のようなものが必要です

ko.contextFor($('.button.btn.c_btn').get(0)).$data.OnLineUserName()

この方法は、$data オブジェクトを取得する必要がある場合に便利です。それ以外の場合は、jQuery を使用してスパンの「テキスト」を取得できます

于 2013-08-02T14:32:33.770 に答える