指令中的简单隔离范围不起作用

时间:2014-09-16 17:21:15

标签: angularjs angularjs-directive

我使用Angular 1.2.24(最新的稳定版本)时遇到了一个简单的隔离范围的问题。

app.directive('myDirective', function() {
return {
    restrict: 'A',
    scope: {},
    link: function(scope) {
         scope.name = 'This is my directive';   
    }
};

});

<div my-directive>{{ name }}</div>

但是name是空的。如果我删除scope: {}它的工作原理。那是为什么?

http://jsfiddle.net/98f97cyt

2 个答案:

答案 0 :(得分:1)

使用这种方式

HTML:

<div ng-app="MyModule">

    <div my-directive>

    </div>
</div>

JS:

angular.module('MyModule', []).directive('myDirective', function() {
    return {
        restrict: 'A',
        scope: {},      
        template:'<div>{{ name }}</div>',
        link: function(scope) {
             scope.name = 'This is my directive';   
        }
    };
});

答案 1 :(得分:0)

我找到了答案:AngularJS Scope differences between 1.0.x and 1.2.x

这种行为是一种预期的突破性变化,它是在Angular 1.2.0中引入的(在rc3之后)。