angularjs – $parse vs $eval?哪一个是最佳做法?

前端之家收集整理的这篇文章主要介绍了angularjs – $parse vs $eval?哪一个是最佳做法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道$ parse和$ eval都运行在Angular表达式上。为什么Angular团队创造了这两个?

我检查了角度库,$ eval定义如下:

$eval: function(expr,locals) {
        return $parse(expr)(this,locals);
      }

所以有什么区别:

$parse(expr)(context,locals);

$eval: function(expr,locals);
      }

我想知道哪一个是最佳实践?什么时候使用这两个?

你注意到,
$parse(expr)($scope,locals)

完全相当于

$scope.$eval(expr,locals)

但是,$ parse是比$ eval更“基本”的操作,所以你可以在一个地方解析一次(例如,在一个指令的编译函数中):

var parsedExpr = $parse(tAttrs.p1);

并在其他地方重复使用(例如,在控制器功能中)

var childScope1 = $scope.$new();
var childScope2 = $scope.$new();

var r1 = parsedExpr(childScope1);
var r2 = parsedExpr(childScope2);
原文链接:https://www.f2er.com/angularjs/144656.html

猜你在找的Angularjs相关文章