$parse和服务$interpolate有什么区别$compile?对我来说,他们都做同样的事情:获取模板并将其编译为模板函数。
$parse
$interpolate
$compile
这些都是帮助 AngularJS 视图渲染的服务示例(尽管$parse并且 $interpolate可以在此域之外使用)。为了说明每个服务的作用,让我们以这段 HTML 为例:
var imgHtml = '<img ng-src="/path/{{name}}.{{extension}}">'
范围内的值:
$scope.name = 'image'; $scope.extension = 'jpg';
鉴于此标记,这里是每个服务带来的内容:
ng-src
/path/{{name}}.{{extension}}
$interpolation
$interpolate("/path/{{name}}.{{extension}}")($scope)
path/image.jpg
name
extension
$parse('name')($scope)
$parse('name').assign($scope, 'image2')
所有这些服务协同工作以在 AngularJS 中提供实时 UI。但它们在不同的层面上运作: