2016-06-29 9 views
0

私は "spyStyle"という角度のディレクティブを持っています そして私はできるだけ使用したいと思います。 ...私は、監視されているものに基づいて、さまざまなコールバック関数を呼び出すことができるようにしたいと思います。私は時計の関数の前にif文を実行する必要があります -AngularJsウォッチの値に基づいてコールバック関数を変更する方法

は、ここで私は、これはそれを行っていると考えている私のコード

.directive('spyStyle', [function() { 
     return { 
      link: function (scope, element, attrs) { 
       scope.$watch(function() { 
        return element.css(attrs['spyAttribute']); 
       }, styleChangedCallBack, true); 

       function styleChangedCallBack(newValue, oldValue) { 
        if (newValue !== oldValue) { 
         // do something interesting here 
        } 
       } 
      } 
     }; 

    }]); 
+0

監視中の値を渡し、コールバックを渡します。 – tymeJV

+0

tymeJVありがとう、私はそれを解決する方法から、物事を処理する適切な方法はありますか?別のコールバック関数を呼び出すために$ watchステートメントを2回だけ呼び出す コールバック関数を使用して$ scope.watchステートメントに渡す変数を設定できませんでしたか?私がそれを試したとき、私はエラーを受けたので。 – Acts7Seven

答えて

0

です。 誰かに別の提案がありますか?ここ

   if ((attrs['spyAttribute']) = 'background-color') { 
        alert("background-color"); 
        scope.$watch(function() { 
         element.css('color', 'black'); 
         return element.css(attrs['spyAttribute']); 
        }, bgStyleChangedCallBack, true); 
       } else { 
        alert("something else"); 
        scope.$watch(function() { 
         //element.css('color', 'black'); 
         return element.css(attrs['spyAttribute']); 
        }, styleChangedCallBack, true); 
       } 

完全なコードはhttps://jsfiddle.net/acts7/5Ls46ebx/

完全指令が可読になる要素や変更テキストの背景色をチェックしています。 次に、背景色が変化するかどうかを確認し、必要に応じて新しい文字色を適用します。

関連する問題