我正在尝试动态生成输入列表,并使用AngularJS + jQuery将它们的值绑定到模型的数组属性。
...
<section ng-controller="MyController">
<button ng-click="addInput">Add new field</button>
<section class="input-group"></section>
</section>
...
$scope.model = {
'title': 'aaa',
'arr': []
};
$scope.instructionCount = 0;
$scope.addInput = function() {
$model.arr.push('');
$('.input-group').append(
'<input type="text"
ng-bind="$scope.model.arr[' + ++$scope.instructionCount + ']">
);
};
为什么这不起作用?
答案 0 :(得分:3)
首先,在您完全理解jQuery在前端应用程序中的作用之前,我建议您将其从项目中删除,并在Angular way中使用Angular。
然后你应该使用像这样的ngRepeat:
var app = angular.module('demo', []);
app.controller('MainController', function($scope) {
$scope.model = {
'title': 'aaa',
'arr': []
};
$scope.addField = function() {
$scope.model.arr.push('');
};
});
&#13;
<script src="https://code.angularjs.org/1.4.3/angular.js"></script>
<div ng-app="demo" ng-controller="MainController">
<section>
<button ng-click="addField()">Add new field</button>
<section class="input-group">
<input type="text" ng-repeat="input in model.arr track by $index" ng-model="model.arr[$index]">
</section>
<pre>{{model | json}}</pre>
</section>
</div>
&#13;