Tôi có Mô hình xem sử dụng chức năng quan sát tùy chỉnhArray để sắp xếp. Khi tôi cố gắng chạy nó, nó nói: "... không có phương thức 'sortByProperty'".Làm thế nào để tải các chức năng tùy chỉnh KnockoutJS với RequireJS?
Tôi nên tải tệp handlers.js như thế nào để thực hiện công việc này?
handlers.js:
define(['knockout'], function(ko) {
'use strict';
ko.observableArray.fn.sortByProperty = function (prop, order) {
this.sort(function (obj1, obj2) {
var result;
if (obj1[prop] == obj2[prop])
result = 0;
else if (obj1[prop] < obj2[prop])
result = -1;
else
result = 1;
return order === "desc" ? -result : result;
});
};
});
viewmodel.js:
define([
'knockout',
'js/extends/handlers'
], function(ko) {
'use strict';
var LabelsModel = function() {
var self = this;
self.availableLabels = ko.observableArray();
self.selectedLabel = ko.observable();
self.sortBy = ko.observable(); // What field to sort by
self.sortOrder = ko.observable(); // Sort order. asc or desc.
// Returns the labels for the current page
self.pagedRows = ko.computed(function() {
// Sorts the labels
return self.availableLabels.sortByProperty(self.sortBy(), self.sortOrder());
});
};
return LabelsModel;
});
Cảm ơn. Tải nó với requirejs đã làm các trick. – Sindre
@Sindre nice! Cảm ơn và chúc may mắn ! – Jalayn
Bạn không cần phải làm cho nó toàn cầu cho kịch bản cụ thể của bạn. Có vẻ như mẫu ban đầu của bạn sẽ hoạt động bình thường. Đó là cách tôi tải tiện ích mở rộng. –