template
プロパティを使用して、Django から angular-ui-bootstrap モーダルにフォームを提供しています。
function openFinderModal() {
var modalInstance = $modal.open({
template: vm.modalTemplate,
});
フォーム ビューから提供されるモーダル テンプレートの関連部分:
<div class="modal-body" >
<form ng-controller="ServiceFinderModalController">
{% csrf_token %}
{{ form }}
</form>
</div>
次に、django-angularを使用して、以下の単純なフォームに対応するng-model
各フォーム フィールド ( docsを参照)を作成します。
class ServiceSelectionForm(NgModelFormMixin, NgForm):
service_0 = forms.BooleanField()
ただし、このフォーム フィールドにアクセスしようとすると$scope
、undefined
.
function ServiceFinderModalController($scope) {
console.log($scope.service_0);
}
ページのソースを調べたところ、動作するはずです (最後の 2 行目を参照)。
<form ng-controller="ServiceFinderModalController" class="ng-pristine ng-valid ng-scope">
<input type="hidden" name="csrfmiddlewaretoken" value="dkH6aiHyIqqkJlN5xAbiYaX0c37tXb9U">
<ul class="djng-form-errors ng-hide" ng-show="U2VydmljZVNlbGVjdGlvbkZvcm0.$pristine">
<li ng-show="U2VydmljZVNlbGVjdGlvbkZvcm0.$message" class="invalid ng-binding ng-hide" ng-bind="U2VydmljZVNlbGVjdGlvbkZvcm0.$message"></li>
</ul>
<ul class="djng-form-errors ng-hide" ng-show="U2VydmljZVNlbGVjdGlvbkZvcm0.$dirty"></ul>
<label for="id_service_0">Test 2</label>
<ul class="djng-field-errors ng-hide" ng-show="U2VydmljZVNlbGVjdGlvbkZvcm0.service_0.$pristine">
<li ng-show="U2VydmljZVNlbGVjdGlvbkZvcm0.service_0.$message" class="invalid ng-binding ng-hide" ng-bind="U2VydmljZVNlbGVjdGlvbkZvcm0.service_0.$message"></li>
</ul>
<ul class="djng-field-errors ng-hide" ng-show="U2VydmljZVNlbGVjdGlvbkZvcm0.service_0.$dirty"></ul>
<input id="id_service_0" name="service_0" ng-model="service_0" type="checkbox" class="ng-pristine ng-untouched ng-valid ng-empty">
</form>
私は次のようなことを試みまし$scope.$digest()
たが、[$rootScope:inprog]
エラーが発生します。
アップデート
は$scope
、一度切り替えられると、このフィールドを認識するようになります。今、私は最初からこれを行う方法を理解する必要があります...