2017-06-16 64 views
1

我有一个模式弹出up.To开放模式弹出我有下面的代码获取表单名称为指令

mymodule.directive('modalDialogSite', function() { 
    return { 
    restrict: 'E', 
    scope: { 
     show: '=' 
    }, 
    replace: true, 
    transclude: true, 
    link: function(scope, element, attrs) { 
     scope.dialogStyle = {}; 
     if (attrs.width) 
     scope.dialogStyle.width = attrs.width; 
     if (attrs.height) 
     scope.dialogStyle.height = attrs.height; 
     if (attrs.overflow) 
     scope.dialogStyle.overflow = attrs.overflow; 
     scope.hideModal = function() { 
     scope.show = false; 
     }; 
    }, 
    template: "<div class='ng-modal' ng-show='show'><div class='ng-modal-overlay'></div><div class='ng-modal-dialog' ng-style='dialogStyle'><div class='ng-modal-close' ng-click='hideModal()'><i class='fa fa-times-circle'></i></div><div class='ng-modal-dialog-content' ng-transclude></div></div></div>" 
    }; 
}); 

鉴于页面的代码像下面

<a data-toggle="modal" role="button" class="btn btn-success" ng-click="add_site()" data-backdrop="static"><i class="icon-bookmark"></i><b>Add Site</b></a> 

<modal-dialog-site show='modalShown_site'> 
      <?php echo $this->load->view('sites/modal_sites/content/add_website');?> 
</modal-dialog-site> 

当我点击这个按钮它去add_site()功能在我的控制器我已经给像下面

mymodule.controller('myCtrl',function($scope){ 

    $scope.modalShown_site = !$scope.modalShown_site; 

    $scope.add_sute = function() 
    { 
     $scope.modalShown_site = ! $scope.modalShown_site; 
    } 

}); 

其实我的代码已经载入我的形式在这里

<modal-dialog-site show='modalShown_site'> <?php echo $this->load->view('sites/modal_sites/content/add_website');?‌​> </modal-dialog-site> 

和我的形式会像

<form id='frmAddSite' name='frmAddSite' novalidate angular-validator angular-validator-submit="add_website(frmAddSite)" class="form-horizontal form-validate" method="POST"> 
     <label for="textfield" class="control-label">Name</label> 
     <input name='site_name' ng-model="text.site_name" required required-message="'Site name is required'" type="text"> 
    <input type="submit" class="btn btn-primary" value="Submit"> 
    <button type="button" ng-click="frmAddSite.reset();add_site_cancel()" class="btn" data-dismiss="modal" aria-hidden="true">cancel</button> 
</form> 

在这种情况下怎么能得到表单名称进入指令?

+0

的哪里是你的'form'?你的意思是'

'还是别的......? – Maher

+0

\t \t \t \t \t \t user7098427

+0

嗨@Maher感谢您响应我的查询。其实我已经在这里加载我的表单 <?php echo $ this-> load-> view('sites/modal_sites/content/add_website');?> user7098427

回答

1

在此示例中,我们创建了一个指令,以获得一些属性nameid一个元素form

app.directive('myDirective', function() { 
     return { 
      transclude: true, 
      template: '<div class="something" ng-transclude></div>', 
      link: function(scope, element) { 
       var formName = element.find("form").attr("name"); 
       var formId = element.find("form").attr("id"); 
       console.log(formName); 
       console.log(formId); 
      } 
     } 
    }); 
+0

控制台不工作在我的链接功能 – user7098427

+0

其实我想重置我的表格。这就是为什么我需要在指令中的表单名称 – user7098427

+0

是我明白了@ Maher.Thank你这么多。如果你不介意你能否请清除这个错误https://stackoverflow.com/questions/44582593/reset-form-when-i-click-modal-pop-up-关闭按钮-X功能于angularjs – user7098427