更改 NG-Click 函数
Changing an NG-Click function
所以我有一个调用函数的按钮。该函数将加载笔记并在跨度中显示它们。加载笔记后,我想更改在ng-click
中调用的函数。下面是我的代码。
$scope.loadNotes = function(id){
$scope.span = document.getElementById("note" + id);
$scope.span.innerHTML = '<i class="fa fa-spinner fa-4x fa-spin"></i>';
$http({
method: "post",
url: "scripts/getTicketNotes.php",
data: {
id: id
},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).then(function successCallback(res){
$scope.span.innerHTML = res.data;
document.getElementById("button" + id).setAttribute("ng-click", "hideNotes("+id+")");
document.getElementById("button" + id).innerHTML = "Hide Notes";
}, function errorCallback(res){
});
};
$scope.hideNotes = function(id){
$scope.spanNotes = document.getElementById("note" + id);
if($scope.spanNotes.style.display == 'none'){
$scope.spanNotes.style.display = 'block';
document.getElementById("button" + id).innerHTML = "Hide Notes";
}else{
span.style.display = 'none';
document.getElementById("button" + id).innerHTML = "Show Notes";
}
};
问题是该按钮仍将运行loadNotes
功能,即使Chrome中的代码检查器显示ng-click
的值为hideNotes()
。不知道为什么这样做。
您可以在 HTML 中使用 ng-if 指令,在控制器中使用一个标志值,该值在您显示笔记以处理元素时设置。
例如
<div ng-if="!notesShown" ng-click="loadNotes()">
<div ng-if="notesShown" ng-click="hideNotes()">
并在您的控制器中,根据需要设置 注释显示值。
使用 angular 时,您不应该像在代码中那样操作 DOM 元素,声明一个 noteItems 数组并在项目上使用中继器。对于切换,单击函数声明两个函数并在它们之间切换:
var function1 = function(noteItem){
$http({
....
}).then(function successCallback(res){
$scope.clickFunction = function2;
}, function errorCallback(res){
});
};
var function2= function(noteItem){
$scope.clickFunction = function1;
};
$scope.clickFunction = function1;
相关文章:
- 使用jqGrid列格式化程序函数使ng-click工作
- ng-click指令没有调用整个函数
- 在 Angular 指令中定义一个用于 ng-click 的函数
- 是否可以在 ng-click 中调用函数字符串
- 如何在 ng-click 函数中更改$rootScope值
- 在引导模式中使用“ng click”触发函数
- Angularjs指令链接调用ng-click中的函数
- 未找到ng-click函数中的参数
- 如果else为Angular,则使用ng click函数重复ng
- 如何在AngularJS ng-click(或ng-change,..)中调用服务函数
- AngularJS ng-click 指令不调用函数
- ng-class 的函数表达式在 ng-click 时被调用
- AngularJS ng-click不调用作用域上的函数
- 如何通过ng-click将其传递到角度函数
- Angular JS ng-click在通过另一个javascript函数加载HTML时不起作用
- 如何在 ng-click 上堆叠多个操作/函数
- 更改 NG-Click 函数
- AngularJS将$scope变量传递给ng-click函数
- 使 ng-click 函数通用以添加行
- CSS "float: none;"阻止Javascript函数"ng-click&quo