通过另一个指令传递指令

时间:2016-04-18 13:31:03

标签: javascript angularjs angularjs-directive angularjs-ng-transclude

我们创建了一些指令来加速编码和清理htmls,例如:

<div class="form-group">
   <label class="form-label">{{label}}
        <input ng-disabled="ngDisabled" ng-model="ngModel" type="text" class="form-control"/>
   </label>
   <div ng-if="invalidMessage" class="error">{{invalidMessage}}</div>
</div>

和js

angular.module('ui.default-input', [])
       .directive('defaultInput', function(){
           return {
               restrict: 'E',
               templateUrl: '_component.html',
               scope: {
                   label: '@',
                   invalidMessage: '@',
                   ngModel: '=',
                   ngDisabled: '='
               }
           }
       });

所以我们可以在任何地方使用它,比如

<default-input label="im a label" ng-model="vm.model"></default-input>

问题是,每当我们想要向输入添加另一个指令时,我们必须在指令自己的作用域中定义它并手动应用它。 (就像我们使用ngDisabled和ngModel一样)。

有更聪明的解决方案吗?以这种方式使用指令是错误的吗?

提前致谢。

0 个答案:

没有答案