我想在我的應用程序中使用AngularJS,並且在某種程度上已經成功。ng-click在AngularJS中沒有觸發,而onclick做
我能夠獲取數據並將其顯示給用戶。我在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
未被觸發。從this question我試圖刪除大括號,只寫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。
我嘗試使用代碼'ng-click =「FetchViewData.deleteRecord('{{d ['@ link']。href}}')」'和'ng-click =「deleteRecord('{{d ['@鏈接'] .href}}')「',但是在兩種情況下它都不起作用。 – Naveen
你的語法會出現問題 - 正如你所看到的,這個非常基本的小提琴工程 - http://jsfiddle.net/HB7LU/799/ 嘗試用沒有參數綁定的方法替換你的方法(可能會是什麼引發你的錯誤),並看看它是否調用它,所以只需ng-click =「deleteRecord()」。 –
謝謝!它終於使用'ng-click =「deleteRecord(d ['@ link']。href)」'。再次感謝GitHub鏈接和JSFiddle。 – Naveen