从ng重复奇数内部的ng点击访问事件对象
Accessing event object from ng-click inside of ng-repeat oddity
http://jsfiddle.net/5mbdgau1/3/
在我的fiddle示例中,我访问通过ng-click
传入的事件对象。它工作得很好,尽管在处理"OtherService"的承诺时访问它时,它突然不在了?这是怎么回事?
使用jQuery是可行的,所以我认为这与Angular jQlite有关。此外,它在ng-repeat
内部断裂,否则它会工作。我想知道为什么事件对象似乎消失了。谢谢
var myApp = angular.module('myApp',[]);
myApp.controller('TestController', function(TestService) {
var vm = this;
vm.foo = TestService;
vm.items = [1, 2, 3, 4];
});
myApp.service('OtherService', function($http) {
return $http.get('https://httpbin.org/get').then(function() {});
});
myApp.service('TestService', function(OtherService) {
return function(evt) {
var myText = evt.currentTarget.textContent;
evt.currentTarget.textContent = "Bar";
OtherService.then(function() {
console.log(evt);
evt.currentTarget.textContent = myText + myText;
});
}
});
html:
<div ng-controller="TestController as vm">
<div ng-repeat="item in vm.items">
<div ng-click="vm.foo(item, $event)">{{item}}</div>
</div>
</div>
您以错误的顺序传递来自ng-click
的参数。从更改ng-click
<div ng-click="vm.foo(item, $event)">{{item}}</div>
至
<div ng-click="vm.foo($event, item)">{{item}}</div>
TestService
函数首先需要一个事件对象。
// Code goes here
var myApp = angular.module('myApp',[]);
myApp.controller('TestController', function(TestService) {
var vm = this;
vm.foo = TestService;
vm.items = [1, 2, 3, 4];
});
myApp.service('OtherService', function($http) {
return $http.get('https://httpbin.org/get').then(function() {});
});
myApp.service('TestService', function(OtherService) {
return function(item, evt) {
console.log(evt, item)
var myText = evt.currentTarget.textContent;
evt.currentTarget.textContent = "Bar";
OtherService.then(function() {
console.log(evt);
evt.currentTarget.textContent = myText + myText;
});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="TestController as vm">
<div ng-repeat="item in vm.items">
<div ng-click="vm.foo(item, $event)">{{item}}</div>
</div>
</div>
相关文章:
- 从ng模板访问作用域
- 访问ng repeat中的第一个项目
- Ng出口无法访问父$scope
- 在 ng-if 编译后访问指令中的 DOM 元素
- 使用 ng-repeat访问 ng 表单元素/值
- 访问重复之外的ng重复ng形式
- 在控制器中访问 ng-重复$first属性
- 对象不能在angularjs ng-model中访问
- 如何访问ng个重复生成的表上的字段
- 如何访问嵌套的表单ng包含范围/字段
- 从ng重复奇数内部的ng点击访问事件对象
- 如何访问ng重复中的ng重复外的ng模型长度
- 如何访问ng-init或ng-checked中服务回调函数中声明的$scope变量
- 以新模式访问作用域形式ng repeat
- 有棱角的如何获得ng重复项范围的访问权限
- 访问一个控制器的ng隐藏值以在全局控制器中操纵另一个控制器中的ng样式
- 访问ng repeat指令中的DOM
- 如何访问Angular JS模板指令中设置的值,如“ng class?”
- 访问ng网格中的select元素
- 如何在 ng 重复中访问 Angular 表单上的$valid