angularjs - 从属性获取绑定表达式(不是已解析的值)

时间:2014-01-19 23:47:44

标签: angularjs angularjs-directive

我正在制定一个基于此的图像之间交叉淡化的指令:http://www.bennadel.com/blog/2497-Cross-Fading-Images-With-AngularJS.htm

我不想看特定的字段,而是想在ngSrc中观看图像绑定的内容。所以而不是(coffeescript):

 $scope.$watch "data.ActiveImage", (newValue, oldValue) ->

我想用:

 $scope.$watch attributes['ngSrc'], (newValue, oldValue) ->

DOM元素的位置如下:

<img cross-fade-on-change ng-src="{{data.ActiveImage}}"/>

问题是,watch表达式解析为绑定的url,而不是绑定表达式。我/我怎么做?

1 个答案:

答案 0 :(得分:1)

您应该使用$observe代替$watch

attrs.$observe 'ngSrc', (value) ->
  • $ observe用于观察属性插值($ interpolate)。
  • $ watch用于评估范围内的表达式($ parse)。

来自文档:

  

$ observe(key,fn)

     

观察插值属性。

     

$ watch(watchExpression,listener,objectEquality)

     

每当watchExpression发生更改时,都会注册一个侦听器回调函数。