gpt4 book ai didi

angularjs - 如果在元素中使用 ng-if,则 getElementByID 无法正常工作

转载 作者:行者123 更新时间:2023-12-02 01:33:17 24 4
gpt4 key购买 nike

我在 html 中有一个段落元素。该元素仅在值为 true 时可见。我已使用 ng-if 进行检查。我试图通过 getElementByID 访问该元素,但它返回 null。

但是我能够访问未使用 ng-if 的 html 中的其他段落元素。我如何访问段落元素并获取与 Angular 指令绑定(bind)的值?

HTML

<!DOCTYPE html>
<html ng-app="testApp">

<head>

<script data-require="angular.js@*" data-semver="2.0.0-alpha.31" src="https://code.angularjs.org/1.4.0/angular.min.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>

<body>
<div class="pull-right" style="margin-top:50px;margin-right:100px" ng-controller="MainController">
<div>
<p id="link" ng-if="user.isAdmin">New Link</p>

<p id="test">
</div>


{{value}}

</div>
</body>

</html>

Angular JS

var app = angular.module('testApp',[]);

app.controller('MainController', ['$scope', function($scope) {
$scope.user={};
$scope.today = new Date();
$scope.user.isAdmin=true;
$scope.value = "Test123";

var objstatic = document.getElementById('link');
console.log(objstatic);//returns null

var objdynamic = document.getElementById('test');
console.log(objdynamic);
objdynamic.innerHTML="Dynamic Test";


}]);

工作副本在这里更新 Working Demo

最佳答案

问题是您试图在摘要循环呈现元素之前访问该元素。如果您更改代码以使用 $timeout 那么您将看到该元素

  $timeout(function() {
var objstatic = document.getElementById('lnkmanage');
console.log(objstatic);
}, 0);

关于angularjs - 如果在元素中使用 ng-if,则 getElementByID 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32862924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com