4

単純なログイン フォームをモデルにバインドする際に問題があります。「autofill」イベントは stickit によって認識されないため、ビューはモデルと同期されません。

HTMLは非常に簡単です:

<form>
    <input id="username" type="text"/>
    <input id="password" type="password"/>
</form>

ビューは空のモデルで初期化され、render 関数にバインドされます。コードの抜粋を次に示します。

bindings: {
    '#username': 'username',
    '#password': 'password'
},

...

initialize: function () {
    this.model = new Backbone.Model();
}

...

render: function() {
    this.stickit();
}

$('username').val()関数を呼び出して値を取得するとinitialize、適切な自動入力値が取得されます。

誰もこの問題の解決策を知っていますか?

git リポジトリで問題を作成しませんでした。なぜなら、私が何か間違ったことをしているかどうか、オートフィルがすぐに使えるかどうかわからないからです。

前もって感謝します!

前に

4

2 に答える 2

1

ブラウザやプラグインがオートフィルの入力フィールドを魔法のように詰め込む方法については、標準化されていないようです。ほとんどの場合、変更イベントは発行されないようです。そのため、モデルはビューと同期しなくなります。ログインモデルを保存する前に、次のことを行います。

this.$('input').change();

基本的に、任意の入力に対して変更イベントを強制的に発生させて、フィールドに対して変更ハンドラーが実行されるようにします。その後、モデルはビューと一致する必要があります。

于 2014-10-04T20:03:28.377 に答える