私は半角スペースで保存されていないフォームから離れて移動するときに、ユーザーの確認を求めるカスタムangle-js指示文を書きました。
これは完璧に機能しますが、私が何をしているのか分かりません。
コードはそうのようになります。
HTML:
<input type="text" name="username" form-confirmation/>
app.js:
angular.module('myModule').directive('formConfirmation', formConfirm)
function formConfirm() {
return {
restrict: 'A',
link: function ($scope, $element, $attrs) {
function conf(event) {
if ($scope[$element.attr('name')].$dirty) {
if (confirm("You have unsaved changes! Are you sure you wish to leave this page?") !== true) {
event.preventDefault();
}
}
};
$scope.$on('$locationChangeStart', conf);
}
}
}
私の質問:($場合
1)私が使用して最初に試してみました要素$ダーティ)しかし、これは動作しませんでした。 $ elementと$ scope [$ element.attr( 'name')]との違いは何ですか?
2)$ element、$ attrs、$ scopeの関係は何ですか?
3)$ elementのattrメソッドはどこから来たのですか?
1)1つは文字列、もう1つはオブジェクト、2)それらはすべて角度でプリセットされた "タイプ"、3)注入された –