ngdialog中的表单 - 控制器中未定义的表单名称

时间:2015-07-28 10:25:20

标签: angularjs ng-dialog

我无法获取ngDialog中表单的名称。 我的对话框是:

$scope.dialogAddNewParent = ngDialog.open({
                template: 'addNewParentDialog',
                className: 'ngdialog-theme-default dialogwidth550',
                scope: $scope
            });

问题是在ngDialog中我有一个来自名称=" addNewParentForm",但是当我试图将此表单验证到我的控制器时,我无法获得名称我的表格,所以我得到这个错误。

Cannot read property 'lastName' of undefined 

lastName是我表单输入的名称。

在我的html中我有这个对话框的脚本:

<script type="text/ng-template" id="addNewParentDialog">
    <div class="p-lg" style="color:#748690">ADD NEW PARENT</div>
    <form name="addNewParentForm" ng-submit="addNewParent(addNewParentForm.$valid)" novalidate class="form-validate form-horizontal p-lg">
        <div class="form-group">
            <label style="color:#1a9fc8" class="col-sm-3 control-label">Last Name*</label>
            <div class="col-sm-9">
                <input type="text" name="lastName" ng-model="new_parent.lastName" required="" ng-maxlength=80 class="form-control" value="{{new_parent.lastName}}" />
                <span ng-show="addNewParentForm.lastName.$dirty &amp;&amp; addNewParentForm.lastName.$error.required" class="text-danger">This field is required</span>
                <span ng-show="addNewParentForm.lastName.$dirty &amp;&amp; addNewParentForm.lastName.$error.maxlength" class="text-danger">Input cannot be longer than 80 characters</span>
            </div>
        </div>
        <div class="form-group">
            <label style="color:#1a9fc8" class="col-sm-3 control-label">First Name*</label>
            <div class="col-sm-9">
                <input type="text" name="firstName" ng-model="new_parent.firstName" required="" ng-maxlength=80 class="form-control" value="{{new_parent.firstName}}" />
                <span ng-show="addNewParentForm.firstName.$dirty &amp;&amp; addNewParentForm.firstName.$error.required" class="text-danger">This field is required</span>
                <span ng-show="addNewParentForm.firstName.$dirty &amp;&amp; addNewParentForm.firstName.$error.maxlength" class="text-danger">Input cannot be longer than 80 characters</span>

            </div>
        </div>.......

并在我的控制器中

....$scope.addParent = function (choice) {
    switch (choice) {
        case 1:
            $scope.dialogAddNewParent = ngDialog.open({
                template: 'addNewParentDialog',
                className: 'ngdialog-theme-default dialogwidth550',
                scope: $scope
            });
            break;
        case 2:
            $scope.dialogAddNewParentFromList = ngDialog.open({ template: 'addNewParentFromListDialog', controller: 'StudentEditController', className: 'ngdialog-theme-default dialogwidth350 ngdialog-overlay', overlay: false, scope: $scope, data: {} });
            break;
    }
}
$scope.addNewParent = function (valid) {
    $scope.submitted = true;
    var input = $scope.addNewParentForm;
    if (valid) {
        $scope.dialogAddNewParent.close();
        $scope.parents.push($scope.new_parent);
        console.log('Parents', $scope.parents)
    } else {
        console.log('Not valid!!');
        $scope.addNewParentForm.lastName.$dirty = true;//here is the problem with undefined

    }
};.....

谢谢!

0 个答案:

没有答案