Tôi đang cố sử dụng webshims polyfill trong ứng dụng góc cạnh, cũng đang sử dụng requirejs để quản lý phụ thuộc. Tôi đang cố gắng giảm bớt sự thiếu vắng thuộc tính form
trong các trường biểu mẫu như input
và button
, cho trình duyệt biết hình thức một nút hoặc đầu vào cụ thể thuộc về. IE9 thiếu tính năng này.Sử dụng webshims polyfill trong ứng dụng Góc
Tôi đã tìm ra cách tốt nhất để sử dụng polyfill này là tạo chỉ thị biểu mẫu và gọi hàm $.webshims.polyfill('forms')
bên trong hàm liên kết.
define(['angular', 'webshims'], function(angular) {
return angular.module('myApp').directive('form', ['$window', function($window) {
return {
restrict: 'E',
scope: false,
link: function($scope, iElement, iAttrs) {
if (!(window.Modernizr.input.placeholder || window.Modernizr.input.autofocus)) {
$.webshims.setOptions({
waitReady: false
});
$.webshims.polyfill('forms');
}
}
};
}
]);
Dưới đây là cách tôi đang tải webshims polyfill ngay bây giờ:
My Requirejs cấu hìnhapp: {
options: {
baseUrl: 'src/apps',
stubModules: ['cs'],
paths: {
jquery: '../public/components/jquery/jquery',
....
angular: '../public/components/angular/angular',
....
webshims: '../public/components/webshim/src/polyfiller',
},
shim: {
angular: {
deps: ['jquery'],
exports: 'angular'
},
...
priority: ['angular']
}
}
}
Cái này là mặc dù tải shim, và thậm chí gọi chức năng chính xác, shims dường như không hoạt động, vì IE9 vẫn gặp sự cố với thuộc tính Biểu mẫu HTML5 (trình giữ chỗ, các thuộc tính , v.v.
Tôi thiếu gì ở đây?
Hoàn hảo! Tôi đã tìm ra sau một thời gian, (không kiểm tra SO). Vấn đề là basePath đã được tính toán không chính xác, vì vậy tôi đã phải vượt qua điều đó, và có, quyết định sử dụng một chỉ thị biểu mẫu không phải là rất tươi sáng chính nó, như các polyfill chăm sóc các trình duyệt được hỗ trợ. Cảm ơn mọi thứ! –
Tôi có một câu hỏi nhỏ, tôi chủ yếu quan tâm đến IE9 + kể từ bây giờ. Trong IE9, thậm chí không gọi updatePolyfill() trên phần tử dường như không gây ra bất kỳ vấn đề nào. Tôi đã chuyển chế độ xem, tạo chế độ xem động, v.v. Tôi cho rằng góc cạnh bằng cách nào đó đang xử lý điều này trong IE, * (mặc dù hiện tại tôi không sử dụng chỉ thị, nơi tôi thường đặt mã này ...) * –
Tôi không thể nói. Polyfill thuộc tính biểu mẫu không cần gọi updatePolyfill. Nếu trình giữ chỗ vẫn hoạt động, Angular dường như lưu vào bộ nhớ cache hiển thị bằng cách nào đó. –