にポリフィル。私はform
アトリビュートがないことを、フォームフィールドにinput
とbutton
のようにシムしようとしています。これは特定のボタンや入力がどのフォームに属しているかをブラウザに伝えます。 IE9にはこの機能がありません。使用webshimsは、私はまた、依存関係の管理のためのrequirejsを使用している角度アプリで<a href="https://github.com/aFarkas/webshim">webshims polyfill</a>を使用しようとしている角度アプリ
このポリフィルを使用する最良の方法は、フォームディレクティブを作成し、リンク機能内で$.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']
}
}
}
事はあっても、シムの負荷にもかかわらずである、とさえ呼び出します正しい機能は、シムは
HTML5フォーム(プレースホルダ、 フォーム属性など)を属性とIE9はまだ問題を抱えていると、動作していないようです私はここで何が欠けていますか?
完璧!私はしばらくしてそれを理解しました(SOをチェックしませんでした)。 問題は、basePathが間違って計算されていたため、渡す必要がありました。フォームディレクティブを使用するという決定は、ポリファがサポートされているブラウザを処理するので、あまり明るくありませんでした。 ありがとうございました! –
私は1つの小さな質問がある、私は主に今IE9 +に関心を持っています。 IE9では、要素のupdatePolyfill()を呼び出さなくても問題は発生していないようです。私はビューを切り替え、ダイナミックなビューなどを作成しました。私は角度がIEでこれをどうにかして処理していると思います*(普通はこのコードを置いていますが...) –
私は言うことができません。フォーム属性polyfillにはupdatePolyfill呼び出しは必要ありません。プレースホルダがまだ動作している場合、Angularはレンダリングされたマークアップを何らかの形でキャッシュしているようです。 –