![](/img/trans.png)
[英]How do I pass the DOM object (this) that contains an ng-repeat statement into the ng-if function? (Javascript/AngularJS)
[英]AngularJS, how to trigger dom-related javascript on ng-if change
我有一個ng-if開頭的表單字段(輸入文本)。 在某些時候,ng-if值變為true。
發生這種情況時,我想執行一些可操作DOM的JavaScript。 為簡單起見,假設我需要選擇輸入值並關注該字段。
<input type="text" ng-value="foo" ng-if="show" onshow="doSomething()"/>
<button ng-click="toggle()"></button>
JavaScript
ctrl.foo = "bar";
ctrl.show = false;
ctrl.toggle = function(){
ctrl.show = !ctrl.show;
}
我知道它看起來像“非角度方法”,但是在這里我認為動作與模型無關。
由於ng-if
指令會在每次show
變為true時執行模板,因此您可以使用ng-init
。 參見以下代碼片段並替換alert('test);
通過您想要的任何東西。
angular.module('test', []).controller('test', function($scope, $element) { $scope.show = false; $scope.toggle = function() { $scope.show = !$scope.show; }; $scope.init = function() { alert($element.find('input').val()); }; });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="test"> <div ng-controller="test"> <input type="text" value="foo" ng-if="show" ng-init="init()" /> <button ng-click="toggle()">Toggle</button> </div> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.