我有一个删除项目的方案。 为此,首先我得到一个具有特定条件的值列表。检索到的值将在UI中显示,并带有单选按钮,以选择要删除的特定项目。
我已将单选按钮的值指定为检索到的项目的ID。此id用于angularJS方法中进行删除。目前在控制器内的角度函数中获得未定义的值。
我的角度控制器如下:
async function insertData() {
for (let index = 1; index <= 3; index++) {
console.log("Insert Data?");
prompt.start();
let input = await new Promise(resolve => {
prompt.get(['data'], (err, result) => {
resolve(result);
}
});
// do something with input
}
}
insertData().then(() => console.log("Done prompting."));
我的html页面代码是:
mainApp.controller("deleteToDoController", function($scope,$http) {
$scope.toDoList = {};
$scope.getToDo = function(){
var url = "http://localhost:8080/webservice-4.0/rest/todo/"+$scope.status;
$http.get(url)
.then(function(response) {
$scope.toDoList = angular.fromJson(response.data);
});
}
$scope.deleteToDo = function(){
var url = "http://localhost:8080/webservice-4.0/rest/todo/delete/"+$scope.deleteId;
$http.get(url)
.then(function(response) {
$scope.toDoList = angular.fromJson(response.data);
});
}
});
赞赏!!!!
答案 0 :(得分:2)
你的$ scope.deleteId将是不可取的。您的函数应该有一个参数 deleteId ,将函数更改为
$scope.deleteToDo = function(deletId){
var url = "http://localhost:8080/webservice-4.0/rest/todo/delete/"+ deleteId;
$http.get(url)
.then(function(response) {
$scope.toDoList = angular.fromJson(response.data);
});
}
确保你也传递了Id in the html,
<input type="button" ng-click="deleteToDo(toDo.id)">Delete</button><br>
修改强>
由于您的删除按钮位于 ng-repeat
之外,您应该使用带有 ng-model
的点运算符作为 deleteId < / p>
将 $scope
变量定义为
$ scope.deleteItem = {};
和你的HTML as,
<div ng-repeat = "toDo in toDoList">
<input type="radio" ng-model="deleteItem.deleteId" value="{{toDo.id}}"/>
</div>
<input type="button" ng-click="deleteToDo()">Delete</button><br>
和您的控制器为,
$scope.deleteToDo = function(){
var url = "http://localhost:8080/webservice-4.0/rest/todo/delete/"+$scope.deleteItem.deleteId;
$http.get(url)
.then(function(response) {
$scope.toDoList = angular.fromJson(response.data);
});
}
答案 1 :(得分:2)
自deletedId
子范围内创建ng-repeat
以来。你scope
以外的ng-repeat
变量不会像{1}}
你必须做以下事。
在定义模型时使用ng-click
,这样原型继承将有助于将变量的引用传递给子范围。
使用Dot rule
模式。
<强> HTML 强>
ControllerAs
使用点规则
<form ng-submit="getToDo()">
ToDo Status:
<input type="radio" ng-model="status" value="completed"/>Completed<input type="radio" ng-model="status" value="pending"/>Not Completed
<input type="submit" value="View To Do"/><br>
<div ng-repeat = "toDo in toDoList">
<input type="radio" ng-model="tobeDeleted.deleteId"
value="{{toDo.id}}"/>
Task : {{toDo.name}}<br>
</div>
<input type="button" ng-click="deleteToDo()">Delete</button><br>
</form>