AngularJs,将指令属性添加到范围而不隔离

时间:2015-03-25 22:18:33

标签: javascript angularjs angularjs-directive angularjs-scope

我创建了一个使用父范围的directivedirective应该接受一个属性,即

<my-nice-new-directive data-hide-icon="true" />

但我不想孤立范围。是否可以将属性添加到$scope

1 个答案:

答案 0 :(得分:1)

考虑使用$parse服务获得乐趣。

.directive('myNiceNewDirective', function () {
    return {
        restrict: 'AE',
        controller: function ($scope, $attrs, $parse) {
            var hideIcon = $parse($attrs.hideIcon)($scope);
        }
    };
})

或者您可以只评估变量data-hide-icon="{{isIconHidden}}",在这种情况下您可能想要观看它。

.directive('myNiceNewDirective', function () {
    return {
        restrict: 'AE',
        scope: true, //this is not necessary but could be useful
        controller: function ($scope, $attrs) {
            $scope.$watch(function () {return $attrs.hideIcon;}, function (newValue, oldValue) {
               //react to change...
            });
        }
    };
})