角度指令的范围不能很好地绑定

时间:2016-10-10 13:35:35

标签: javascript angularjs angular-directive

下午好。

我是角色和指令的新手,以及范围不正常的东西(当然,在我的情况下:))。

我定义了以下指令:

angular.module('ToolBarMod', ['ngAria'])
.controller('ToolBarCtrl', [function ($scope) {}])
.directive('svdToolBar', function ($translate) {
    return {
        restrict: 'E',
        replace: true,
        scope: {
            id: '@id',
            name: '@name',
            labelHeader: '@labelHeader',
            tooltipLabelSave: '@tooltipLabelSave',
            enableSave: '@enableSave',
            onClickSave: '&onClickSave',
            onChange: '&onChange'
        },
        template: '<div id="{{name}}" class="md-toolbar-tools">' +
                      '<md-toolbar md-scroll-shrink>' +
                            '<div class="md-toolbar-tools titulo margin-8">'+
                                '{{labelHeader}}' +
                                '<md-button id="save" class="tool toolBarButton" ng-disabled="{{enableSave}}" aria-label="{{ \'GEN-SAVE\' | translate }}" ng-click="onClickSave">' +
                                    '<md-tooltip>'+'{{tooltipLabelSave}}'+'</md-tooltip>' +
                                    '<ng-md-icon icon="save"></ng-md-icon>'+
                                '</md-button>'+
                            '</div>' +
                      '</md-toolbar>' +
                      '<div flex></div>' +
                    '</div>'
        }
});

})();

我的html以这种方式使用指令

<svd-tool-bar id="toolbar" labelHeader="tasacion" name="toolbar" tooltipLabelSave="{{ 'VAL-NEW-I-N' | translate }}" enableSave="true"/>

如果属性为&#39; labelHeader&#39; ,有一些我做得不对劲的事情。因此,当加载html时,我无法看到属性&#39; tasacion&#39; 。元素&#39; labelHeader&#39;它是空的。

我错过了什么?

提前致谢

2 个答案:

答案 0 :(得分:3)

在属性

中使用label-header
<svd-tool-bar id="toolbar" label-header="tasacion" 

答案 1 :(得分:2)

Angular期望属性名称由&#39; - &#39;分隔。 (就像指令名一样)。

而不是labelHeader使用label-header