依存関係管理にrequirejsも使用しているAngularアプリでwebshimsポリフィルを使用しようとしています。特定のボタンまたは入力がどのフォームに属しているかをブラウザに伝えるおよびのform
ようなフォームフィールドに属性がないことをシムしようとしています。IE9 にはこの機能がありません。input
button
このポリフィルを使用する最善の方法は、フォーム ディレクティブを作成し$.webshims.polyfill('forms')
、リンク関数内で呼び出すことであると考えました。
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');
}
}
};
}
]);
これが私が現在 webshims ポリフィルをロードしている方法です:
私のRequirejs構成app: {
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']
}
}
}
問題は、シムがロードされ、正しい関数を呼び出しても、IE9 にはまだ HTML5 フォーム属性 (プレースホルダー、フォーム属性など)に問題があるため、シムが機能していないように見えることです。
ここで何が欠けていますか?