我在指令之一中使用范围隔离。但是,这似乎不起作用:

<div ng-controller="MyCtrl">
  Hello, {{name}}!
    <dir info='spec'>
        {{ data }}
    </dir>
</div>

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

//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});

function MyCtrl($scope) {
    $scope.name = 'Superhero';
    $scope.spec = 'Super';
}

myApp.directive('dir', function(){
    return {
      restrict: 'AE',
      scope:{
        data: '=info'
      }
    }
});


小提琴:enter link description here

最佳答案

这是一个小提琴:http://jsfiddle.net/WA5t5/

由于this commit(1.2)在应用程序模板或其他一些模板中定义的子元素
指令模板未获得隔离范围。

您可以改为:

myApp.directive('dir', function(){
    return {
      restrict: 'AE',
      scope:{
        data: '=info'
      },
        template: "{{ data }}"
    }
});


如果要更改此行为,请检查我的其他答案:Why I can't access the right scope?

09-10 12:24
查看更多