指令范围布尔属性

时间:2014-02-10 15:27:10

标签: angularjs-directive

我想在我的指令中使用属性的存在(或不存在)作为布尔值。例如:

<foo bar baz></foo>

我的控制器中有以下内容:

controller: function($scope, $element) {
    if $scope.bar === null {
        alert("Bar Present");
    }
    if $scope.baz === null {
        alert("Baz Present");
    }
}

不幸的是,上面的bar和baz在$ scope上根本没有设置。我希望在那里看到一个null或一个明确的'undefined'。但$ scope只是没有bar或baz属性。

1 个答案:

答案 0 :(得分:1)

Here is a working code sample for what I think you want

var app = angular.module('app', []);

app.directive('myDirective', [function(){

return {
  restrict: 'E',
  template: '<div>directive test</div>',
  link: function(scope, el, attrs){
    if(attrs.bar !== undefined) { el[0].innerText = 'bar'; }
    if(attrs.baz !== undefined) { el[0].innerText = el[0].innerText + ' baz'; }
  }
};

}]);

  <body>
    <my-directive bar baz></my-directive>