我有一个下拉列表,当用户从下拉列表中选择任何选项时,每个选择都会出现一个文本框。 HTML的将动态文本框中的数据发送到AngularJS控制器
<select id="nut">
<option>---select---</option>
<option value="N1">N1</option>
<option value="N2">N2</option>
<option value="N3">N3</option>
<option value="N4">N4</option>
</select>
<div id="holder"></div>
<input type="submit" value="save" ng-click="savedata()"/>
Javascript成为
$("#nut").change(function() {
val = $(this).val();
var ctr = '<input type="text" name="' + val + '"/>';
$('#holder').append(ctr);
});
现在我想用在点击保存按钮的AngularJS控制器在数据库中插入所有这些文本框的值在新行。
我知道如何通过使用data-ng-model绑定表单元素数据来为常规表单元素执行此操作。但是当没有时如何实现这一点。的表单元素是可变的。
我试着这样做,
var ctr = '<input type="text" name="data.' + val + '" data-ng-model="data.' + val + '"/>';
<input type="submit" data-ng-click="savedata(data)"/>
AngularJS控制器 -
.controller('testController', function ($scope, $http, $location) {
$scope.savedata = function (data) {
debugger;
alert($scope.data);
}
})
但是这给数据为未定义的值。 那还有什么可以做的?
当您的页面加载完成后,链接阶段结束,因此IU认为您使用JQuery动态创建的输入无法与Angular绑定。你可以实现你的需求,但它不会是直线和角度推荐的方式。 – davidxxx