Angular元素包装器指令

时间:2013-04-10 13:41:45

标签: twitter-bootstrap angularjs angularjs-directive

以下是我们通常在twitter boostrap表单中看到的代码段:

 <div class="control-group">
    <label class="control-label" for="email">Enter Email</label>
    <div class="controls">
       <input type="email" name="email" ng-model="member.email" required >
    </div>
 </div>

在表单代码中有很多字段会变得非常嘈杂,所以我想在我的Angular驱动的html中使用这样的东西:

<formy label-for="email" label-text="Enter Email">
      <input type="email" name="email" ng-model="member.email" required >
</formy>

这可以通过Angular中的指令来完成吗?

1 个答案:

答案 0 :(得分:3)

是的,可以做到

app.directive('formy', function() {
  return {
        restrict: 'E',
        transclude: true,
        scope: {
            labelText: "@",
      labelFor: '@'
        },
        template : '<div class="control-group">' +
        '<label for="{{labelFor}}" class="control-label">{{labelText}}</label>' +
        '<div class="controls" ng-transclude></div>' +
        '</div>', 
        replace: true
    };
})

演示:Plunker