0

全部,

关于指令,我对 angularjs 的理解是,当您有这样的隔离范围设置时:

scope: {
  dataSource: '='
}

链接函数里面的那个:function(scope, ele, attr)

如果像这样使用,scope它将有一个dataSource绑定到name我的控制器上的属性:

<my-element data-source='name'></my-element>

然而事实并非如此,这里有一个例子:

http://jsfiddle.net/HB7LU/21879/

谢谢

史蒂夫

4

1 回答 1

5

将范围属性的名称更改dataSourcesource. 因为data是保留名。

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

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

myApp.controller('MyCtrl', function($scope) {
  $scope.name = 'Batman';
})

.directive('myElement', function() {
  return {
    template: '<div>Hello {{source}}</div>',
    replace: true,
    restrict: 'E',
    scope: {
            source: '='
    },
    link: function(scope, ele, attr) {
            console.log(scope.source);
    }
  }

})

代码小提琴

于 2016-01-07T11:23:55.023 回答