【发布时间】:2023-03-10 08:00:01
【问题描述】:
我有一个由 Django 模板标签呈现的 HTML 表单,我想使用 AngularJS 来操作它。
在我的模板(未渲染)中,我有:
<html>
<body>
{{ form.as_p }}
</body>
</html>
这是 Django 呈现此模板的方式:
<html>
<body>
<form>
<div id="div_id_street" class="ctrlHolder ">
<label for="id_street">
Street<span>*</span>
</label>
<input id="id_street" type="text" class="textInput textinput" name="street" maxlength="32">
</div>
</form>
</body>
</html>
我想隐藏 div div_id_street,但由于 Django 生成 HTML 代码的方式,我无法在我的 HTML 中添加 ng-show 或 ng-hide 指令。 p>
是否可以在 AngularJS 控制器中显示/隐藏此 div?
谢谢!
【问题讨论】:
-
是 Django 生成的 Angular 编译后的 HTML 吗?
-
HTML 是在 Angular 编译之前生成的。
-
所以你可以让 Django 在某处添加“ng-controller='...'”,但不能让它在其他地方添加“ng-show='...'”?你能让 Django 向目标 div 添加一个类(这将是一个指令)吗?
-
有可能,但要做到这一点,我需要更改部分 Django 核心。对我来说完美的解决方案是能够将 CSS 属性 display 更改为 none (隐藏 div)或删除此属性(显示 div) ,在 Angular 控制器中。
-
我仍然缺少一些东西......在你的 Django 渲染模板中,ng-controller 在哪里?顺便说一句,可以从控制器内部修改 DOM。我只是首先想知道您是否可以连接控制器。还是想创建一个
ctrlHolder指令? (如果是这样,@CaioToOn 的答案将起作用。)