AngularJS,Animate on change:指令$ watch未调用

时间:2015-06-22 11:33:49

标签: javascript angularjs angularjs-directive

我正在创建一个实时的websocket应用程序,它需要在更改值时抓住用户的注意力。

以下指令在同一页面的多个位置使用:

Dim parentFolder, baseFileName, extension, format, newPath

parentFolder = oFSO.GetParentFolderName(oFile)
baseFileName = oFSO.GetBaseName(oFile)

If oDoc.HasVBProject Then
    extension = ".docm"
    format    = 13 
Else
    extension = ".docx"
    format    = 12 
End If

newPath = oFSO.BuildPath(parentFolder, baseFileName & extension)

oWord.ActiveDocument.SaveAs newPath, format

<span class="badge" animate-on-change animate-class="highlightWarning" animate-watch="totalAnswers">{{totalAnswers}}</span>

现在,rq.answer很少更改,但每次实际值更改时都会更改。 IE:它工作正常。

不幸的是,第一次调用后没有工作(在页面加载时),但{{totalAnswers}}显示了视觉上的变化。该模型肯定更新,但没有调用$ watch。这是为什么?

<div animate-on-change animate-class="colorWarning" animate-watch="rq.answer"
                                 ng-switch="question.type"
                                 ng-repeat="rq in recentResponse.answers"
                                 ng-if="rq.question == question.id">

1 个答案:

答案 0 :(得分:2)

您需要更改$watch上的第一个参数,作为返回变量的函数,而不是变量本身:

scope.$watch(function () {
               return scope.animateWatch; }, 
             function (nv, ov) {
               call(); }, 
             true);

在观看部分看一下here at the docs