Sử dụng angular.js, tôi có một danh sách động các trường biểu mẫu tôi muốn hiển thị cho người dùng để chỉnh sửa (và nộp sau):angular.js, không thể chỉnh sửa tự động tạo ra các lĩnh vực
var app = angular.module('app', []);
app.controller('Ctrl', function($scope) {
$scope.fields = {
foo: "foo",
bar: "bar",
baz: "baz"
};
});
Và HTML:
<div ng-app="app" ng-controller="Ctrl">
<table>
<th>key</th>
<th>value</th>
<th>fields[key]</th>
<tr ng-repeat="(key,value) in fields">
<td>{{key}}:</td>
<td><input type="text" ng-model="value"/></td>
<td><input type="text" ng-model="fields[key]"/></td>
</tr>
</table>
</div>
Xem this fiddle. Vì lý do tôi không hiểu, các hộp nhập văn bản không thể chỉnh sửa được. Tôi đã thử hai cách khác nhau như được thấy ở trên: value
và fields[key]
. value
hoàn toàn không thể chỉnh sửa được và fields[key]
sẽ cho phép một phím tắt và sau đó nó sẽ làm mờ. Tôi đang làm gì sai? Cảm ơn bạn.
nó có thể chỉnh sửa nhưng sau mỗi lần nhấn phím lĩnh vực văn bản của bạn mất tập trung do đó bạn phải click vào nó một lần nữa để đưa char khác – SET
Và điều đó xảy ra cuz toàn bộ bạn mẫu được tái rendered sau mỗi thay đổi trong bất kỳ mô hình. Và sau khi mẫu được hiển thị lại, hiện tại không có cách nào để biết đầu vào nào cần được tập trung. Vì vậy, bạn nên tạo theo cách đó và bạn có thể muốn viết chỉ thị để giữ tiêu điểm trên đầu vào được chọn. – SET
Cảm ơn @SET, điều đó hoàn toàn có ý nghĩa, bạn nên làm cho câu trả lời đó! –