2013-08-02 36 views
9

Tôi đang sử dụng jpg loại trực tiếp để đặt giá trị độ dài.Nhận giá trị liên kết dữ liệu trong jquery

HTML Mã

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

này đang làm việc tốt và hiển thị tên người sử dụng trên giao diện người dùng.

Tôi đang cố gắng lấy giá trị đó từ tệp js. bằng cách sử dụng mã dưới đây

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

này đang phân phát kết quả như văn bản này: $ data.OnLineUserName. Tôi muốn tên người dùng được chỉ định bởi tôi.

Trong giao diện của nó cho thấy Bhagirathi nhưng trong hiện js của nó hiện nội dung trong dữ liệu ràng buộc

làm thế nào để có được Tên (phương tiện: Bhagirathi) trong tập tin js

xin vui lòng giúp đỡ để giải quyết vấn đề này

cảm ơn trước

[EDIT]

$(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 
    } 
}); 

[/ EDIT]

Trả lời

12

Bạn có thể lấy bối cảnh loại trực tiếp cho các phần tử với

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

này sẽ trả về một một đối tượng như

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

nơi $ dữ liệu là đối tượng $ dữ liệu của bạn. Vì vậy, để có được tên bạn cần một cái gì đó như

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

Cách này hữu ích hơn khi bạn cần nhận đối tượng dữ liệu $. Nếu không, bạn chỉ có thể nhận được 'văn bản' của một khoảng thời gian với jQuery

+0

$ ('. Button.btn.c_btn'). (0) điều này có nghĩa là gì? – user1926138

+0

@ user1926138 $ ('. Button.btn.c_btn'). Get (0) giống như $ ('. Button.btn.c_btn') [0] ko.contextFor (node) chỉ nhận một nút nhưng bộ chọn jQuery trả về một mảng – demkalkov

+0

điều đó có nghĩa là gì? – user1926138

Các vấn đề liên quan