这真的很奇怪。
不起作用
scope: { 'dataSource': '='}
作品
scope: { 'mySource': '='}
作品
scope: { 'data': '='}
任何人都可以告诉我为什么在第一个小提琴console.log打印未定义,并在第二个99。
答案 0 :(得分:6)
我认为你会为这个问题砸自己...... :)。
“data-”html5前缀被剥离,你在链接“source”中得到的东西不是“dataSource”:
angular.module('myApp', []).directive('myElement', function() {
return {
restrict: 'E',
scope: {
'source': '=',
},
template: '<p>test</p>',
link: function(scope, iElement, iAttrs) {
console.log(scope.source);
}
}
});
答案 1 :(得分:2)
如果您的名字使用数据 - 任何前缀,则显然与HTML data attribute存在冲突。 xdata-whatever或x-data-无论什么工作都很好
<my-element xdata-source="counter"></my-element
或
<my-element x-data-source="counter"></my-element
答案 2 :(得分:0)
与所有人说的一样,data-
前缀被剥离,更改范围的属性名称将解决问题。
另一种方法是将data-
前缀加倍,如下所示:
<my-element data-data-source="counter"></my-element>
JSFiddle: http://jsfiddle.net/4j3sks6u/