Angularjs指令,双向绑定不绑定

Angularjs directive, two way binding does not bind

全部,

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

scope: {
  dataSource: '='
}

在 link 函数中:function(scope, ele, attr)

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

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

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

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

谢谢

史蒂夫

将范围 属性 dataSource 的名称更改为 source。因为 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);
    }
  }

})

Code Fiddle