如何劫持AngularJS数据绑定过程?

时间:2015-12-09 08:11:27

标签: angularjs

{{SomeData}}表示与AngularJS中的模型绑定数据。

这个数据绑定过程是否会立即发生?

就我而言,我想知道将新数据呈现给用户的确切时间。

那么,是否有任何方法可以在呈现数据之前或之后插入一些代码来获取时间?

2 个答案:

答案 0 :(得分:2)

可能没有指定你要求的事件 - 但是

$scope.$watch('SomeData', function(newVal, oldVal){
// code here
});

诀窍?

可能的性能修复:

如果你将var处理从Angular中取出(通过使用像jQuery这样的非角度事件触发更改) - 你可以选择何时执行$ scope。$ apply() - 从而控制事物的时间而不使用一个$ watch。

答案 1 :(得分:0)

如果您按照此demo

进行操作,也许它可以满足您的目的



var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.name = function() {
    var date = new Date();
    console.log("called just now at ", date)
    return 'World';
  }
});

<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.8/angular.js" data-semver="1.4.8"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <p>Hello {{name()}}!</p>
  </body>

</html>
&#13;
&#13;
&#13;