【发布时间】:2015-01-26 03:06:36
【问题描述】:
我有一个动态创建 HTML 表单字段的脚本。我正在尝试使用 Angular 指令来绑定数据。我相信绑定没有发生,因为 HTML 元素在页面加载时不存在,因为它们是动态创建的。这是我的 HTML:
<div id="form-builder-wrapper">
<form class="form-horizontal" role="form" autocomplete="off">
<ul class="handles">
<br />
<!--Dynamic HTML is being appended here with jQuery-->
</ul>
<button class="btn btn-primary m-t-20 hide" type="submit">Submit</button>
</form>
</div>
我的 jQuery 在上面的表单中动态添加了我的 HTML 元素。这是一个正在附加的示例元素:
<div class="form-group requiredField" id="element_1" data-type="textbox">
<label for="element_label_1" class="col-sm-3 control-label" ng-bind="element_label_1">First Name</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="element_1" id="element_label_1" required="">
</div>
</div>
如您所见,在我的label 字段中,我附加了一个ng-bind="element_label_1" 指令。我正在尝试使用此代码更新label:
<p>Update Label: <input type="text" ng-model="element_label_1"></p>
但这不起作用。它没有绑定在一起。知道我做错了什么吗?
【问题讨论】:
-
最大的问题是在 Angular 应用程序中使用 jQuery 附加到 DOM。如果没有通过
$compile运行的html,角度无法初始化任何指令 -
@charlietfl 我是一个有角度的新手,你介意给出一个我可以使用的完整代码示例吗?
-
喜欢@pixelbits 我有点不情愿没有看到你的一些代码。迁移可能很容易,或者可以很容易地放入指令中,您可以访问角度范围以使用
$compile。如果您尝试在沉重的 jQuery 页面上添加 angular,那么这可能根本不是一个好主意。更好地概述您的发展状况将有助于确定
标签: javascript jquery html angularjs