Biểu thức ràng buộc dữ liệu văn bản chỉ có thể có một thuộc tính duy nhất. Làm thế nào tôi có thể số nhiều văn bản tùy thuộc vào số lượng tài sản khác?Có cách nào để số nhiều văn bản bằng cách sử dụng knockoutjs
Trả lời
Có một số cách để thực hiện việc này. Tôi đã trình bày 2 cách trong các câu đố được hiển thị ở đây: http://jsfiddle.net/njj2P/2/
Tùy chọn đầu tiên tôi đã hiển thị là sử dụng ko.computed để xác định xem tên có được trả lại ở dạng số ít hay số nhiều hay không, dựa trên đánh giá.
this.formattedName = ko.computed(function() {
return this.qty() > 1 ? this.name() + "s" : this.name();
}, this);
Tùy chọn thứ hai cho biết cách thực hiện điều này mà không có thuộc tính được tính toán và thay vào đó bằng cách sử dụng ràng buộc có điều kiện.
<span data-bind="if:qty()>1">s</span>
Bạn có thể tạo liên kết tùy chỉnh có thể tái sử dụng như sau.
ko.bindingHandlers.pluralize = {
update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
function count(data) {
var value = ko.utils.unwrapObservable(data);
if (typeof value === "object" && value.length > 0) {
return value.length;
} else if (typeof value === "number") {
return value;
}
}
var settings = valueAccessor();
var text = count(settings.data) === 1 ? settings.singular : settings.plural;
$(element).text(ko.utils.unwrapObservable(text));
}
};
Bạn sẽ sử dụng nó như thế này.
<span data-bind="pluralize: { data:items, singular:'entry', plural:'entries' }"></span>
- Tùy chọn
data
có thể trỏ đến bất kỳ mảng hoặc số. - Tùy chọn
singular
đại diện cho văn bản mà bạn muốn hiển thị nếudata
đánh giá đến 1 - Tùy chọn
plural
đại diện cho văn bản sẽ được hiển thị bằng cách khác.
Xem hành động ở đây. http://fiddle.jshell.net/jessegavin/wamfw/
Tôi thực sự thích giải pháp này. – jaffa
Câu trả lời hay! Tôi khuyên bạn nên thêm vào tùy chọn 'none' và tham chiếu ngược lại đến 'count' để nhà phát triển có thể nhận các tùy chọn như '' none '=>" No items ",' singular '=>" 1 item ",' số nhiều '=> "## mục" ' –
Ý tưởng hay. Đó là những gì Angular làm. – jessegavin
- 1. Cách sử dụng XPath để chọn nhiều giá trị văn bản có thể có?
- 2. Làm cách nào để phân tích cú pháp tệp văn bản bằng cách sử dụng javascript
- 3. Làm cách nào để đặt tiêu điểm khi có nhiều hộp văn bản bằng jquery?
- 4. Làm cách nào để chạy nhiều phiên bản bằng cách sử dụng Backbone.Paginator.js?
- 5. Cách gửi email nội dung HTML có nhiều tệp đính kèm văn bản bằng cách sử dụng sendmail
- 6. Làm cách nào để mở nhiều tệp bằng cách sử dụng "có mở" bằng Python?
- 7. Có cách nào để sử dụng văn bản sử dụng làm nền với CSS?
- 8. Trích xuất văn bản PDF bằng cách sử dụng iText
- 9. Xác thực nhiều hộp văn bản bằng cách sử dụng errorprovider
- 10. Tìm và thay thế nhiều dòng trong tệp xml/văn bản bằng cách sử dụng python
- 11. Làm thế nào để Fade In/Out nhiều văn bản bằng cách sử dụng CSS/jQuery như trên Droplr?
- 12. Buộc văn bản HTML phải sử dụng phông chữ đơn cách bằng cách sử dụng CSS
- 13. Tắt hộp văn bản bằng cách sử dụng CSS
- 14. chú thích nhiều điểm với văn bản trong mayavi bằng cách sử dụng mlab
- 15. tạo hộp văn bản nhiều dòng bằng cách sử dụng hàm Html.Helper
- 16. Làm thế nào để tải html bằng cách sử dụng jquery vào một văn bản TinyMCE
- 17. Chuyển nhiều tham số bằng POST bằng cách sử dụng ajax để php
- 18. Làm cách nào để tải văn bản này bằng Jsoup?
- 19. Làm thế nào để làm văn bản DIFF bằng cách sử dụng PHP?
- 20. Làm thế nào để hiển thị văn bản bằng cách sử dụng Quartz trên iPhone?
- 21. Làm thế nào để bọc văn bản bằng cách sử dụng CSS?
- 22. Làm thế nào để lọc datagridview bằng cách sử dụng một hộp văn bản trong C#?
- 23. Cách chính xác để tạo văn bản đầu vào lớn bằng cách sử dụng Zurb Foundation
- 24. Làm cách nào để vẽ văn bản bằng Libgdx/Java?
- 25. Làm cách nào để che phủ văn bản trên văn bản khác bằng CSS?
- 26. Đếm và hiển thị số ký tự trong hộp văn bản bằng cách sử dụng Javascript
- 27. làm thế nào để ftp nhiều tập tin bằng cách sử dụng kịch bản shell
- 28. Làm cách nào để chọn nhiều đoạn văn bản trong hộp văn bản WPF?
- 29. Thêm văn bản vào PDF hiện có bằng cách sử dụng Python
- 30. Cách so sánh hai tệp văn bản cho cùng một văn bản chính xác bằng cách sử dụng BASH?
Tôi thực sự đang tìm kiếm một cách rõ ràng để làm "y" thành "ies" hoặc "x" thành "ces", v.v ... Phần này là phần dễ dàng. Tôi đã upvoted anyway, nhưng nó không hoàn toàn là những gì tôi muốn. Bất kỳ ý tưởng? Có gì ngoài kia không? – vbullinger
Tôi upvoted câu trả lời này như tôi đã sử dụng tùy chọn thứ hai trong đó, với thay đổi nhỏ! = Thay vì> để giá trị bằng 0 cho thấy s (tức là O mục phụ, 1 tiểu mục, 2 mục phụ) – MikeScott8
Tôi đồng ý và thực hiện cùng một quan sát và thay đổi mã của tôi. – GenuineRex