2011-11-14 57 views
38

Tôi đang cố gắng liên kết các thuộc tính neo với trường KnockoutJS ViewModel. Tôi đã thử một cái gì đó như thế này:Thuộc tính dữ liệu liên kết href cho thẻ neo

<a data-bind="href: Link, value: Title"></a> 

nhưng điều này không hiệu quả. Tôi có thể lấy danh sách các giá trị liên kết dữ liệu có thể có cho các phần tử html ở đâu?

Trả lời

90

Bạn cần sử dụng liên kết attr, điều này cho phép bạn đặt bất kỳ thuộc tính nào bạn muốn.

Ví dụ:

<a data-bind="attr: { href: Link, title: Title }, text: Title">xxx</a> 
12

Ở đây bạn có thể tìm thấy một danh sách tất cả các ràng buộc có thể.

http://knockoutjs.com/documentation/value-binding.html

ở phía bên trái (sidebar), bạn tìm các liên kết đến các ràng buộc khác như văn bản, attr phong cách và nhiều hơn nữa.

Bạn có thể làm điều này

attr: { href: Link}, text: Title như xwrs nhận xét

hoặc tạo một mẫu http://knockoutjs.com/documentation/template-binding.html

hy vọng điều này giúp

+0

Cảm ơn. Đã tìm thấy giải pháp xwrs

1

Là một thay thế-@RichardFriend's answer (và nhiều hơn nữa thường được sử dụng tùy chọn), bạn có thể viết một trình xử lý ràng buộc tùy chỉnh để làm cho các khung nhìn của bạn một chút lại ngắn gọn:

ko.bindingHandlers['href'] = { 
 
    update: function(element, valueAccessor) { 
 
    element.href = ko.utils.unwrapObservable(valueAccessor()); 
 
    } 
 
}; 
 

 
ko.applyBindings({ 
 
    myUrl: 'http://stackoverflow.com', 
 
    myText: 'Stack Overflow website' 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 

 
<a data-bind="href: myUrl, text: myText"></a>

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