アプリケーションで AngularJS を使用しようとしていますが、ある程度成功しています。
データを取得してユーザーに表示できます。ng-repeat
そして、 DELETEリクエストを投稿したいボタンがあります。以下はそれを行う私のコードです。
<div class="navbar-collapse collapse">
<table class="table table-striped" ng-controller="FetchViewData">
<tr>
<td>Name</td>
<td>ID</td>
<td>Department</td>
<td></td>
</tr>
<tr ng-repeat="d in viewData">
<td>{{d.EmployeeName}}</td>
<td>{{d.EmployeeID}}</td>
<td>{{d.EmployeeDepartment}}</td>
<td>
<button class="trashButton" type="button"
name="view:_id1:_id2:_id14:_id24:btnDelete"
id="view:_id1:_id2:_id14:_id24:btnDelete"
ng-click="deleteRecord('{{d['@link'].href}}')">
<img src="/trashicon.gif"></button>
</td>
</tr>
</table>
</div>
これは、FetchViewData
情報を取得してユーザーに表示する関数です。
function FetchViewData($scope, $http) {
var test_link = "<MY LINK>";
$http.get(test_link).success( function(data) {
$scope.viewData = data;
});
}
データが取得され、適切に表示されます。
ただし、削除ボタンをクリックしてもコードはng-click="deleteRecord('{{d['@link'].href}}')"
起動しません。Google Chrome の開発者ツールでは、コードに対して有効な値が生成されていることを確認できます{{d['@link'].href}}
が、コードは実行されdeleteRecord
ません。この質問から、中括弧を削除して書き込みのみを試みましd['@link'].href
たが、うまくいきませんでした。
関数に置き換えるng-click
とonclick
、deleteRecord
起動されます。
function deleteRecord(docURL) {
console.log(docURL);
$http.delete(docURL);
}
しかし、その後、以下のエラーが表示されます。
Uncaught ReferenceError: $http is not defined
deleteRecord
onclick
jQuery 1.10.2 と AngularJS v1.0.8 を使用しています。