angularjs自定义按钮指令提交不同的表单

时间:2017-12-15 21:16:59

标签: angularjs directive

我创建了一个样式按钮指令。我只是想要包含在内的按钮提交表单。

angular.module('app')
.directive('gpButton', function () {
    return {
        templateUrl: "views/directives/components/button.html",
        restrict: "E",
        scope: {
            type: '@',
            background: '@'
        },
        transclude: true,
        controllerAs: "vm",
        bindToController: true,
        controller: [function() {
            var vm = this;
        }]
    };
});

这是我的button.html文件;

<button class="button"
    type="{{vm.type === 'submit' ? 'submit' : 'button'}}"
    ng-disabled="{{vm.disabled ? true : false}}"
    ng-style="{'background': vm.background}">
<ng-transclude></ng-transclude>
</button>

我的形式就像是,

     <form name="individualLoginForm" ng-submit="vm.submitIndLogin()">
       <div class="form-group" style="margin-bottom: 100px;">
           <gp-input type="tel"
                     autofocus="true"
                     autocomplete="off"
                     phone-input="true"
                     ng-model="vm.loginPhoneNumber"
                     label="{{'GSM_NUMBER' | translate}}"
                     icon-class="gp-icon icon-phone"
                     disabled="vm.firstFormSubmitted"
                     required="true">
           </gp-input>
        </div>
        <gp-button type="submit" ---> here is my custom submit button
                   background="#E57373">
         Login
        </gp-button>
    </form>

但它只是在刷新页面时提交,如果我转到其他路线然后回来它没有提交表格。我应该做什么来提交包含在任何<form></form>

中的内容

1 个答案:

答案 0 :(得分:1)

{{ }}指令中删除插值ng-disabled

<button class="button"
    type="{{vm.type === 'submit' ? 'submit' : 'button'}}"
    ̶n̶g̶-̶d̶i̶s̶a̶b̶l̶e̶d̶=̶"̶{̶{̶v̶m̶.̶d̶i̶s̶a̶b̶l̶e̶d̶ ̶?̶ ̶t̶r̶u̶e̶ ̶:̶ ̶f̶a̶l̶s̶e̶}̶}̶"̶
    ng-disabled="vm.disabled ? true : false"
    ng-style="{'background': vm.background}">
  <ng-transclude></ng-transclude>
</button>

来自文档:

  

NG-禁用

     

特殊指令是必要的,因为我们不能在disabled属性中使用插值。有关详细信息,请参阅interpolation guide

     

— AngularJS ng-disabled Directive API Reference