如何从控制器访问模式中的表单

时间:2016-03-09 21:24:59

标签: angularjs angularjs-scope angularjs-forms angular-foundation

在我的controller.js文件中,我有:

    angular.module('App').controller('AppCtrl', AppCtrl);

    function AddApp(){        
      var vm = this;
      vm.resetForm = resetForm;

      function resetForm(){
        vm.myForm.$setPristine();
      }
    }

    ...

    function openModal(message){

    var errorMessage = message;
    var modalInstance = $modal.open({
        templateUrl: 'url',
        controller: 'AppCtrl',
        controllerAs:   'App',
        resolve: {
            errorMessage: function () {
                return errorMessage;
            }
        }
    });
    }

在我的模态中我有

    <div ng-controller="AppCtrl as App">
    <form name=App.myForm>
    ...

当我使用这种格式时,它会告诉我 vm.myForm未定义。

这是我在这里找到的最接近的东西,但它仍然不适合我 Can I access a form in the controller?

1 个答案:

答案 0 :(得分:0)

您可以通过将表单添加到解决方案来传递表单:

var modalInstance = $modal.open({
        templateUrl: 'url',
        controller: 'AppCtrl',
        controllerAs:   'App',
        resolve: {
            errorMessage: function () {
                return errorMessage;
            },
            myForm: function() {
                return vm.myForm;
            }
        }
    });

在您的模态控制器中:

angular.module('app').controller('AppCtrl',
    ['$scope', 'errorMessage', 'myForm',
        function ($scope, errorMessage, myForm) {

            console.log(myForm);
    }]
);