Angularjs没有拿起data-src

时间:2014-02-20 22:41:41

标签: angularjs

出于某种原因,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)
      }
  });

1 个答案:

答案 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);
        }
      }
  });