【发布时间】:2017-04-13 23:14:46
【问题描述】:
我有一个下拉列表,当用户从下拉列表中选择任何选项时,每个选择都会出现一个文本框。 HTML-
<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 绑定。您可以满足您的需求,但它根本不是直接和 Angular 推荐的方式。
标签: javascript c# jquery angularjs