我可以在使用父范围的Angular指令中拥有属性吗?

时间:2016-06-17 12:50:55

标签: angularjs angularjs-directive angularjs-scope

我有一个使用父作用域数据的指令。现在,我希望在其中包含一个属性,但仍希望使用父作用域,而不是将所有其他数据传输到更多属性和重复对象中。

var myDirective = function () {
return {
    restrict: 'A',
    templateUrl: '/Areas/GetAdvice/Templates/Directives/loan-comparison-table-directive.html?1',
    //scope: - Don't add anything here to use the scope of the parent
    // But how to use an attribute in this way?
    controller: [
    '$scope',  function ($scope) {
        // Some Code
    }
}

那么,当父范围继承时,如何在指令中添加属性(自变量)?

修改 我只想要一个简单的布尔属性 - 类似于isDescriptionVisible(true / false)。问题是我在我的视图中使用了两次相同的指令,所以我不能在父作用域中有一个变量,因为它会影响两个指令,我不会单独控制它们。

1 个答案:

答案 0 :(得分:0)

您需要为指令创建一个隔离的范围。这是它的确切用例。否则,您需要创建单独的变量来跟踪父范围中的布尔值。

如果您不需要从父作用域传递布尔值,则可以执行以下操作:

var myDirective = function () {
return {
restrict: 'A',
templateUrl: '/Areas/GetAdvice/Templates/Directives/loan-comparison-table-directive.html?1',
scope: {}
controller: [
'$scope',  function ($scope) {
    $scope.isVisible = false;
}
}

如果您需要从父作用域传递它,只需替换

即可
scope: {}

scope: {
isVisible: '='
}