我是这个领域的新手,并且已经尝试了很长时间。您可以在这里看到我的简单版本:https://plnkr.co/edit/YeahrG28bT2izX8gMKor?p=preview
你能告诉我为什么我的点击这里不起作用吗?我的按钮是2signUp按钮,谢谢!
联署材料:
var app = angular.module('myApp', []);
app.controller('mainControl', function($scope) {
$scope.logged = false;
$scope.visiter = true;
var sub1 = document.getElementsByClassName("haha")[0];
sub1.onclick=function(){
$scope.logged = !$scope.logged;
}
})html:
<!DOCTYPE html>
<html lang="en" ng-app='myApp'>
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="MainViewController.js"></script>
</head>
<body ng-controller="mainControl">
<div ng-show="logged">
<button>1Sign Up</button>
<button>Log In</button>
</div>
<div ng-show="visiter">
<button class="haha">2Sign Up</button>
<button>Log In</button>
</div>
<div ng-show="logged">
hello
</div>
</body>发布于 2016-11-01 21:45:42
使用角度处理单击事件的方法,当您有角来为您工作时,不要使用任何document.getElementById()爵士乐。
这就是为什么你应该让角度来处理它。
数据绑定 数据绑定是一种在模型更改时自动更新视图的方法,也是在视图更改时更新模型的一种自动方式。这是很棒的,因为它将DOM操作从您必须担心的事情列表中删除。 https://angularjs.org/
使用角的ngClick
var app = angular.module('myApp', []);
app.controller('mainControl', function($scope) {
$scope.logged = false;
$scope.visiter = true;
$scope.signup = function() {
$scope.logged = !$scope.logged;
alert("ran the function");
}
})<!DOCTYPE html>
<html lang="en" ng-app='myApp'>
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="MainViewController.js"></script>
</head>
<body ng-controller="mainControl">
<div ng-show="logged">
<button>1Sign Up</button>
<button>Log In</button>
</div>
<div ng-show="visiter">
<button id="haha" ng-click="signup()">2Sign Up</button> <!-- use ngClick here! -->
<button>Log In</button>
</div>
<div ng-show="logged">
hello
</div>
</body>
</html>
https://stackoverflow.com/questions/40369089
复制相似问题