我在点击li数据时调用一个函数。我正在将li数据传递给该函数,并试图修改该数据,但是该数据没有被修改。请提出建议。这是笨蛋。
https://next.plnkr.co/edit/ENExN1q40yY9dVFL?open=lib%2Fscript.js&deferRun=1&preview
$scope.selectRow = function(folders) {
console.log(folders);
folders = 'apple';
$http({
method: "GET",
url: "https://reqres.in/api/users?page=2",
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
folders = response.page;
});
}
答案 0 :(得分:0)
要实现这一点,您需要更改$scope.folderList
而不是folders
。
将功能更改为此:
$scope.selectRow = function(folders) {
$http({
method: "GET",
url: "https://reqres.in/api/users?page=2",
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
var index = $scope.folderList.indexOf(folders);
if (index >= 0 ) {
$scope.folderList[index] = String(response.data.page)
}
});
}
https://next.plnkr.co/edit/h3XKo5klP2F1qmAg?open=lib%2Fscript.js&deferRun=1
答案 1 :(得分:0)
文件夹是一个变量,仅存在于控制器的方法中,然后存在于HTML的ng-repeat指令中。它不存在,因此它基本上不是有效变量,并且超出范围。在ng-repeat指令中,您为列表中的项目分配了一个名称,因此可以将其命名为fuzzlebumps,并且仍然可以使用。
所以我的建议是:如果要在范围内正确保留变量,请在控制器中执行以下操作以对其进行初始化:
$scope.nameOfVariable;
或者您的情况:
$scope.folders;
这将创建一个绑定到范围的变量。范围在JS中非常重要,因此Google会搜索基础知识。