2016-11-28 6 views
-2

戻るの機能を維持しようとしています。私たちのアプリケーションでは、戻るボタンを置くことを決めました。そして、戻るボタンをクリックすると、ユーザーが選択したフォームのすべての値を保持する必要があります。 MVCでangularjを使ってこれをやっています。setTimeoutを指定せずにangle関数を呼び出すことができません

フォームでは、ユーザーが選択したモバイルモデルの色を選択できるようにしました。したがって、フォームは、ユーザーが電話モデルを選択し、その色と最後に容量を選択するようなものです。したがって、即時フィールドが選択されている場合にのみ有効になる従属フィールド。

色は動的に作成されます。

下記の私のコードでは、以下で共有しているのは色です。色を選択した後、必要な容量も有効にしました。

var elementName = modelName + '_Black'; 
var elementNameWithHash = '#' + elementName; 
angular.element(elementNameWithHash).trigger("click", elementName); 

MODELNAMEは、動的に渡されます。

ここで問題となるのは、コードが強調表示され、容量の下のセクションが有効になるように、コードが[カラー]セクションのクリックをトリガするために実行されていないことです。

しかし、このコードはまでは実行されませんし、私はこのようなのsetTimeout方法でそれを飾るしていない限り:

setTimeout(function() { angular.element(elementNameWithHash).trigger("click", elementName) }, 1); 

私はそれが私には、この奇妙な挙動を示す理由を理解することはできませんよ。

この問題を解決するには、大変光栄です。

setTimeoutなしでこれを呼び出す必要がある場合はどうすればいいですか?

+0

それは例えば、ある種の競合状態可能性のようにこれが聞こえますハッシュ要素は、直接コールするとまだ使用できませんが、しばらく待ってからコールが続行されます。完全なコードを含めることで、それを見ることができます。 –

+0

@TimBiegeleisen必要に応じて何かがあるかどうかを確認してください。 – HarshSharma

+0

なぜ要素をクリックしているのですか? Clickで呼び出される関数をトリガする場合は、関数を直接呼び出すだけです。 –

答えて

0

ページが読み込まれる前にコードが呼び出されたようです。

角度は、文書準備にテストするために、独自の機能を持っています

angular.element(document).ready(function() { 
    // Your code 
}); 
関連する問題