出于某种原因,Angular没有捕获我的data-src
当我这样做时:
<div foo data-src="{{ my_url }}"></div>
我什么都没回来。但是,当我手动输入它时它起作用:即
<div foo data-src="blah"></div>
我在这里做错了什么?
我的更多代码:
var foo = angular.module('foo', []);
foo.directive('foo', function ($document, $rootScope, $http, $resource) {
return {
restrict: 'A',
scope: true,
link: function (scope, elem, attrs) {
console.log(attrs.src)
}
});
答案 0 :(得分:1)
<强> [编辑] 强>
我忘了在调用attrs.$observe()
时使用camelCase作为属性名称。此外,您似乎做需要使用ng-data-source)。下面的更正......
您希望在指令的link函数中使用attrs.$observe()
。 Angular将监视属性并执行回调,以便在插值表达式的值发生更改时通知指令。
这是一个由Mark Rajcok创建的fiddle链接,用于演示它。以及指向documentation的链接。
最后,这里有一些使用您的指令的示例代码:
var foo = angular.module('foo', []);
foo.directive('foo', function ($document, $rootScope, $http, $resource) {
return {
restrict: 'A',
scope: true,
link: function (scope, elem, attrs) {
attrs.$observe('ngDataSrc', function(newValue) {
console.log('interpolated value', newValue);
}
}
});