私はAngularJS phonegapアプリケーションを持っています。ここで、HTMLはJS Ajaxによって動的に埋められている空白のテーブルです。 Ajaxは必要なデータを取り込み、innerHTMLを使用してテーブルを埋めます。私の場合は、テーブルは複数のボタンで満たされ、各ボタンはNGクリックメソッド名を持っていますAngular JS ng-click HTMLが範囲メソッドに到達しないInnerHTMLによって設定されています
$.ajax({
type: 'GET',
dataType: 'json',
url: 'SAMPLEURL'+tID,
contentType: 'application/json;charset=utf-8',
success: function(response){
var reqObject = JSON.parse(response);
var tableHtml = "";
for(i = 1;i<reqObject.object.length; i++)
{
var variant = reqObject.variants[i];
tableHtml += "<tr><td>";
tableHtml += "<button type='button' ng-click=\"calculateQuantity();\" class='buttonStandard' id='"+variant.Id+"' style='padding:10px 15px 20px 15px; width:100%;margin-top:-10px;'>";
tableHtml += "<div style='height:40px'><h4>"+variant.Name+"</h4></div>";
tableHtml += "</button>";
tableHtml += "</td></tr><tr><td><br /></td></tr>";
}
document.getElementById("tableSelection").innerHTML = tableHtml;
$scope.calculateQuantity = function() {
alert('test');
};
},
error: function(xhr){
alert('Failed to bring Variants');
}
});
あなたは上記のコードから見ることができるように、私はまたcalculateQuantity呼ばれ、スコープにメソッドを追加していユーザーがボタンをクリックしたときに「テスト」というアラートを送信する必要があります。残念ながら、これは起こっていない、誰かが私が間違っているかもしれないことを知っている?
$ httpではなくjqueryから余分なデータを取得しています。 Angularは、到達範囲外で変更された範囲を角度表示する場合を除き、結果については決して知りません。私はすべてのAJAX呼び出しを行うことをお勧めします。角度の組み込み$ httpサービス –
Thanks Jasper、私は$ httpサービスを使用するように変更しましたが、$ compileは私の問題に対する答えでした。 – NetUser101