Bhu*_*hal 18 javascript jquery angularjs
这是我的问题.
HTML结构:
<tr><td><a ng-click=aClick()>Click Me</a></td></tr>
Run Code Online (Sandbox Code Playgroud)
我不能拥有与和相关的任何id/class
我需要的是点击"点击我",<tr>隐藏起来.我需要一个jQuery解决方案.一些我无法使用的方法$(this).
功能:
$scope.aClick = function() {
$(this).parent().parent().css('display','block');
};
Run Code Online (Sandbox Code Playgroud)
但这句话给了我一个错误.
Aru*_*hny 35
注意:我不建议在控制器中使用dom操作,您可以编写指令来执行此操作.也就是说你可以使用它$event来获取事件对象,从中可以获取事件目标并将其与jquery一起使用.
<tr><td><a ng-click="aClick($event)">Click Me</a></td></tr>
Run Code Online (Sandbox Code Playgroud)
和
$scope.aClick = function(event) {
$(event.target).parent().parent().css('display','none');
};
Run Code Online (Sandbox Code Playgroud)
演示:Plunker
更新
更合适的角度解决方案是使用ng-hide
<tr ng-hide="hideRow"><td><a ng-click="hideRow = true">Click Me</a></td></tr>
Run Code Online (Sandbox Code Playgroud)
演示:Plunker
使用ng-repeat 更新了演示
由于你使用角度,你应该很少需要做实际的dom操作.相反,请查看应该为您执行此操作的ng-hide/ng-show指令.
Angular文档中的一个示例:
<body>
Click me: <input type="checkbox" ng-model="checked"><br/>
Show: <span ng-show="checked">I show up when you checkbox is checked?</span> <br/>
Hide: <span ng-hide="checked">I hide when you checkbox is checked?</span>
</body>
Run Code Online (Sandbox Code Playgroud)
编辑
如果表达式中的变量异步更新,则可以强制更新 $scope.$apply
你可以用这个:
JavaScript的
function TestCtrl($scope) {
$scope.clickMe = function ($event) {
$($event.target).parent().parent().css('display','none');
};
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div ng-app>
<div ng-controller="TestCtrl">
<a ng-click="clickMe($event)">Click me</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29716 次 |
| 最近记录: |