是什么区别$parse
,$interpolate
和$compile
服务?对我来说,他们都做同样的事情:获取模板并将其编译为模板功能。
这些都是服务的所有例子,援助在AngularJS视图呈现(虽然$parse
并
$interpolate
可以使用该结构域之外)。为了说明每个服务的作用,让我们以这段HTML为例:
var imgHtml = '<img ng-src="/path/{{name}}.{{extension}}">'
和范围上的值:
$scope.name = 'image';
$scope.extension = 'jpg';
鉴于此标记,这里是每个服务带到表中的内容:
$compile
-它可以使用整个标记并将其转换为链接功能,当在特定范围内执行该链接功能时,会将一段HTML文本转换为动态的,具有所有指令(在此处ng-src
:)对模型更改做出反应的实时DOM 。可以这样调用它:$ compile(imgHtml)($ scope)并获得一个带有所有DOM事件范围的DOM元素。$compile
正在利用$interpolate
(除其他事项外)完成工作。$interpolate
知道如何使用嵌入式插值表达式处理字符串,例如:/path/{{name}}.{{extension}}
。换句话说,它可以使用带有插值表达式的字符串,范围并将其转换为结果文本。可以将$interpolation
服务视为一种非常简单的基于字符串的模板语言。给定上面的示例,可以使用此服务,例如:$interpolate("/path/{{name}}.{{extension}}")($scope)
获得path/image.jpg
字符串作为结果。$parse
用于通过$interpolate
评估个体式(name
,extension
对一个范围)。它可用于 读取 和 设置 给定表达式的值。例如,要评估name
表达式,可以这样做:$parse('name')($scope)
获得“图像”值。要设置值,可以这样做:$parse('name').assign($scope, 'image2')
所有这些服务正在共同努力,以在AngularJS中提供实时UI。但是它们在不同的级别上运行:
$parse
仅与单个表达式(name
,extension
)有关。它是一种读写服务。$interpolate
是只读的,并且涉及包含多个表达式(/path/{{name}}.{{extension}}
)的字符串$compile
是AngularJS机制的核心,可以将HTML字符串(带有指令和插值表达式)转换为实时DOM。问题内容: 我读了很多文档,并且越来越困惑。我基本上不知道 服务 指示 模组 我看到了很多自定义组件。有时他们使用指令,有时使用服务。它总是从模块开始。有人可以举例说明这三种类型之间的区别吗? 问题答案: 可以将模块视为连接其他许多事物的地方,例如指令,服务,常量等。可以将模块注入到其他模块中,从而使您可以高度重用。 编写有角度的应用程序时,您将拥有一个顶级模块,即您的应用程序代码(没有模板)。
我创建了两个java spring boot微服务,它们是1)生产者2)消费者,我使用spring eureka服务器进行服务注册和发现。它工作得很好。那Netflix Zuul有什么用呢。
问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型
问题内容: 我一直在研究Python代码的动态评估,并遇到和函数以及该语句。 有人可以解释之间的区别和怎样的不同模式,适应吗? 问题答案: 简短答案,即TL; DR 基本上,用于EVAL审视你们单个动态生成的Python表达式,并exec用于EXEC动态生成的Python代码仅针对其副作用尤特。 并具有以下两个区别: eval仅接受一个表达式,exec可以使用具有Python语句的代码块:循环和函
OSGi和JavaSPI有什么区别?利弊是什么?
问题内容: 今天,我按照一些说明在Linux中安装软件。有一个脚本需要首先运行。它设置一些环境变量。 指令告诉我要执行,但是我执行错误了。因此未设置环境。最后,我注意到了这一点并继续进行。 我想知道这两种调用脚本方法的区别。我对Linux完全陌生,所以请尽可能详细。 问题答案: 运行脚本,将启动一个新的运行脚本的外壳。新的外壳程序不会影响启动脚本的父外壳程序。 是的简写形式,它将在当前shell中