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);
}
}
})
全部,
关于指令,我对 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);
}
}
})