SQLが返すものに基づいてテーブルを動的に構築しています。以下の例では、私がいない問題で、開始時間と終了時間と、ユーザーがテーブルを埋めることができます。動的に作成されたボタンに配置するとng-clickプロパティが起動しません
var StartTime = document.createElement('td');
var EndTime = document.createElement('td');
var InUser = document.createElement('td');
StartTime.innerText = value[i].startTime;
EndTime.innerText = value[i].endTime;
InUser.innerText = value[i].inUser;
出力は、私はSQLから受信したエントリ数を持つテーブルになります。私が今したいのは、テーブルの最後の列に追加する別のtd要素を作成することです。これは、特定の行を表示および非表示にするボタンになります。何らかの理由で、ボタンをクリックしたときにng-click機能が動作しません。以下は、td要素を作成する方法と、その要素にボタンを適用する方法です。
var ViewComments = document.createElement('td');
ViewComments.innerHTML = '<button type="button" ng-click="showHideComments()" class="r-primary-button">View Comments</button>';//apply click functionality.
Ctrlキーを押しながらページの要素を表示するために、テーブルの上に+ Cのクリックシフト、I行がI(すなわちタイプ、NGクリックし、クラス)を指定された正確な値を有していることがわかります。ハイライトされているときに、ボタンの背景が青色に設定されているので、クラスプロパティが機能しています。これは「クリック効果」をもたらします。ボタンが動的に作成されていないアプリケーションでng-clickを使用していたため、なぜng-click機能が動作しないのか分かりません。私はこれを問題と仮定していますか?もしそうなら、ng-click機能を動的に作成するボタンを操作する方法はありますか?私は、彼らが$コンパイルを使用していることを、このstackoverflowの中で見
: ng-click not working from dynamically generated HTML
が、これは、この問題を解決する唯一の方法ですか?
助けていただけたら幸いです!
はい、あなたは$のコンパイルを使用する必要があります。 –
これをどこから始めるのですか...なぜあなたは 'ng-repeat'を使ってテーブルを作成していませんか?あなたが "角の方法"をするなら、あなたは '$ compile'を必要としません。 https://stackoverflow.com/q/14994391/64279 – adam0101
これまでにng-repeatを見たことがありますが、SQLがその値を返すと、それをどのように活用できますか? SQLテーブルは、ユーザーが「コメントを表示」ボタンをクリックしたときにのみ返されます。私はそのように返されるデータを設定しますか? $ scope.returnValues = comments返されましたか?そして、DOMのng-repeatが実行され、テーブルを埋めるでしょうか?私はまだ数週間JavaScriptを使用していますので、これはまだかなり新しいです。再度、感謝します。 –