【问题标题】:How to access a form in a modal from a controller如何从控制器访问模式中的表单
【发布时间】:2016-03-10 05:38:20
【问题描述】:

在我的 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?

【问题讨论】:

  • 你写function AddApp()我的问题是AppCtrl在哪里?

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


【解决方案1】:

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

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);
    }]
);

【讨论】:

    猜你喜欢
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多