好吧,我已经被困在这里一段时间了,我确定这是相对愚蠢的事情
http://plnkr.co/edit/YcBnbE5VCU5rizkDWreS?p=preview
<head>
<link href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css" rel="stylesheet" type="text/css" />
<link href="http://twitter.github.com/bootstrap/assets/css/bootstrap-responsive.css" rel="stylesheet" type="text/css" />
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.3/angular.min.js"></script>
<script >
function myCtrl($scope, $window) {
$scope.vm = {};
$scope.vm.Courses = [
{ Id: 1, Name: "Course 1"},
{ Id: 2, Name: "Course 2"}
];
$scope.OpenCourse = function(courseId) {
$window.alert("Called " + courseId);
}
}
</script>
</head>
<body ng-controller="myCtrl">
<div>
<div ng-repeat="course in vm.Courses" ng-click="vm.OpenCourse(course.Id)">
<div>
<div>
<label>{{course.Name}}</label>
</div>
</div>
</div>
</div>
</body>
为什么ng-click不在这里触发呢?这个问题似乎被问了很多,但所有的答案似乎都没有帮助。将div从repeat中移出似乎也能让它工作,但我还是不确定为什么。
谢谢
发布于 2014-12-17 03:06:42
删除vm.
结果:
<div ng-repeat="course in vm.Courses" ng-click="OpenCourse(course.Id)">
为什么?因为您设置为$scope
的所有内容在partial上都可用,然后您只需调用它。
发布于 2014-12-17 03:23:47
在OpenCourse(course.Id)前面没有"vm“实际上是我在创建柱塞时的一个打字错误。我已经标记了一个正确的答案,因为它确实导致柱塞工作,但我的问题不是这个。原来我有一个分配给外部div的类,它改变了z索引,将这个div“放在”其他div后面,并且不允许点击传播。
发布于 2015-06-02 21:37:18
如果你使用<label>
,当你点击它时,你可能会遇到奇怪的行为。如果可能,尝试将其更改为其他代码,并重新测试您的代码。
https://stackoverflow.com/questions/27512016
复制相似问题