我想编写一个AngularJS指令,例如
<my-directive>
<inner-body>
normal HTML and Angular constructs
</inner-body>
</my-directive>
应该转换为
<div class="group">
<div> directive inserted text </div>
<div class="groupBody">
normal HTML and Angular constructs
</div>
</div>
基本上,我希望能够灵活地在inner-body
内编写HTML。该指令将其转换为div
并将一些属性应用于此div。
有可能吗?
TIA。
答案 0 :(得分:1)
是的,可以使用ngTransclude
(ngTransclude)
从AngularJS中提取:
<script>
angular.module('transcludeExample', [])
.directive('pane', function(){
return {
restrict: 'E',
transclude: true,
scope: { title:'@' },
template: '<div style="border: 1px solid black;">' +
'<div style="background-color: gray">{{title}}</div>' +
'<ng-transclude></ng-transclude>' +
'</div>'
};
})
.controller('ExampleController', ['$scope', function($scope) {
$scope.title = 'Lorem Ipsum';
$scope.text = 'Neque porro quisquam est qui dolorem ipsum quia dolor...';
}]);
</script>
<div ng-controller="ExampleController">
<input ng-model="title" aria-label="title"> <br/>
<textarea ng-model="text" aria-label="text"></textarea> <br/>
<pane title="{{title}}"><span>{{text}}</span></pane>
</div>
您还可以使用多插槽翻译,其详细信息也包含在链接中here