指令angularjs中的属性值

指令angularjs中的属性值,angularjs,Angularjs,我有html标记,我需要在许多地方使用,所以我宁愿复制粘贴它一次又一次,但不同的标题 我想创建一个指令,看起来是这样的 myModule.directive('row', function ($compile) { return { restrict: 'E', template: '<div class="row">'+ '<div class="col-md-10 margin-top-10px font-18px"&

我有html标记,我需要在许多地方使用,所以我宁愿复制粘贴它一次又一次,但不同的标题

我想创建一个指令,看起来是这样的

myModule.directive('row', function ($compile) {
    return {
        restrict: 'E',
        template: '<div class="row">'+
        '<div class="col-md-10 margin-top-10px font-18px">{{heading}}</div>'+
       ' <div class="col-md-2">'+
            '<div class="margin-top-10px"><span ng-click="close()" class="close helvetica color-black">&times;</span></div>'+
        '</div>'+
    '</div>',
        replace: true,
        link: function (scope, element, attrs, ctrl) {
            var test = attrs.heading;
        }

    };
myModule.directive('row',function($compile){
返回{
限制:'E',
模板:“”+
“{{heading}}”+
' '+
“×;”+
''+
'',
替换:正确,
链接:函数(范围、元素、属性、ctrl){
var测试=属性标题;
}
};
}))

以及我是如何使用它的

 <row heading="its my heading "></row>

我不想创建孤立的作用域或子作用域,我只想从属性传递值,当模板被替换时,我想要它的插值

有人能帮我一下吗?我该怎么做呢

link: function (scope, element, attrs, ctrl) {
    scope.heading = attrs.heading;
}
这也可能是一个好主意

scope: true
您必须将
attr
对象中的值实际附加到作用域,然后才能在模板中使用它。

添加

scope: {
  heading: '='
}
创建具有该属性的双向数据绑定。如果要传入一个范围变量,则需要执行此操作

或使用
@

scope: {
  heading: '@'
}
如果你只是在传递一个字符串


极简主义者plunkr展示:

谢谢你帮助我。我可以使用bindonce吗?因为一旦标题创建,它就永远不会改变。我对bindonce没有太多经验,但我认为它没有太多意义,因为通过属性传递值的方法不会创建手表。