- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我仔细阅读了有关该主题的 AngularJS 文档,然后摆弄了一个指令。这是fiddle .
这里是一些相关的片段:
来自HTML:
<pane bi-title="title" title="{{title}}">{{text}}</pane>
来自 Pane 指令:
scope: { biTitle: '=', title: '@', bar: '=' },
有几件事我不明白:
"{{title}}"
与 '@'
一起使用,并将 "title"
与 ' 一起使用='
?我发现另一个 fiddle 也显示了表达式解决方案:http://jsfiddle.net/maxisam/QrCXh/
最佳答案
Why do I have to use "{{title}}" with '@' and "title" with '='?
@ 将本地/指令作用域属性绑定(bind)到 DOM 属性的计算值。如果您使用title=title1
或title="title1"
,DOM 属性“title”的值就是字符串 title1
。如果您使用title="{{title}}"
,DOM 属性“title”的值是 {{title}}
的内插值,因此该字符串将是当前设置的父范围属性“title”。由于属性值始终是字符串,因此在使用 @ 时,您将始终在指令范围内得到该属性的字符串值。
= 将本地/指令作用域属性绑定(bind)到父作用域属性。因此,使用 =,您可以使用父模型/范围属性名称作为 DOM 属性的值。您不能使用{{}}
带有 =。
使用@,你可以做类似title="{{title}} and then some"
这样的事情-- {{title}} 被插值,然后字符串“andthemsome”与其连接。最终的连接字符串是本地/指令范围属性所获取的。 (您不能使用 = 执行此操作,只能使用 @ 执行此操作。)
对于@,您将需要使用attr.$observe('title', function(value) { ... })
如果您需要在链接(ing)函数中使用该值。例如,if(scope.title == "...")
不会像你期望的那样工作。请注意,这意味着您只能访问此属性 asynchronously 。如果您仅使用模板中的值,则不需要使用 $observe()。例如,template: '<div>{{title}}</div>'
.
使用=,您不需要使用$observe。
Can I also access the parent scope directly, without decorating my element with an attribute?
是的,但前提是您不使用隔离范围。从指令中删除此行
scope: { ... }
然后你的指令将不会创建新的作用域。它将使用父范围。然后,您可以直接访问所有父范围属性。
The documentation says "Often it's desirable to pass data from the isolated scope via an expression and to the parent scope", but that seems to work fine with bidirectional binding too. Why would the expression route be better?
是的,双向绑定(bind)允许本地/指令作用域和父作用域共享数据。 “表达式绑定(bind)”允许指令调用由 DOM 属性定义的表达式(或函数)——并且您还可以将数据作为参数传递给表达式或函数。因此,如果您不需要与父级共享数据 - 您只想调用父级作用域中定义的函数 - 您可以使用 & 语法。
另请参阅
关于angularjs - AngularJS 指令范围内的 '@' 和 '=' 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14050195/
我有三个 td,并且正在尝试将每个内部的函数限制为仅该 td。我该怎么做呢?使用此代码,它会获取所有 3 个图像并将它们全部插入到 h2 之前: jQuery("td.frontpage_news")
这是所需的通用公式:if((b2-b1)=c1,True,False但是,我需要 b2-b1约等于 c1 , 在 5 内大约单位(在本例中为秒)。有没有可以处理这个的函数? 最佳答案 你也可以试试这个
我有三个整数,作为命令行参数传入后赋值给变量。我想验证每个整数都在 1-5 范围内。有没有一种方法可以在不使用如下所示的 if 语句的情况下在 Java 中完成此操作?我想避免这样做(注意伪代码):
检查某个变量 X 是否在某个变量 Z 的 n 个数字之内的最简洁方法是什么。n 是任意定义的数字(即 3)。 所以我想要 if (z {something} x){ // run code i
我的顶级 build.gradle (Gradle 2.2) 中有类似的东西 ext.repo = "https://my-artifactory-repo" buildscript { re
我只是在我的 jsp 页面中进行随机技巧和测试。我想使用 Attributes 将 request 范围对象存储在 session 范围对象中。存储后,当尝试从请求属性中提取值(存储在 session
我正在使用 Spring 。我有一个外部化属性文件。我正在按如下方式加载它。 现在我如何将 session 中的属性作为键值对保存? 我尝试编写一个扩展 ServletContextListene
我有以下范围: scope :billable, -> (range_start = nil, range_end = nil) { joins(:bids) .where("au
请看我的示例代码: var testObject = new SomeClass(); using (testObject) { //At this point how can the te
我目前在保持在 vector 范围内时遇到一些问题。 在下面的代码中,我试图检查正在检查的数字是否小于或等于它后面的数字 #include #include #include bool fun(
有人可以帮我解决下面的(简化的)代码吗?我试图从幻灯片事件函数中调用 doTheSlide() 函数。我对 JS 范围的理解仍然有点可疑。 实现这一目标的正确方法是什么?我收到此错误: Uncaugh
如何在 Swift 中检查时间是否在下午 6 点到晚上 11 点之间?我在使用 NSDateFormatter 时遇到了困难,我觉得一定有更简单的方法。 最佳答案 使用NSCalendar: let
我目前正在尝试创建一个 2D 横向滚动条,并且我目前有我的“世界”绘图(暂时是一个大白框),但我无法弄清楚世界地图的边缘与边缘之间的任何关系确保视口(viewport)始终完全被 map 覆盖。 我的
我正在学习李普曼,而且我只是在学习。我在这里尝试编写一个代码,该代码将返回 vector 中的最小元素。当我在 Codeblocks 中编译我的代码时,它说:“模板声明不能出现在 block 范围内”
我有三个日期对象。我该如何比较它们才能确定它们之间的相对差异。 oldDate = newDate() - 5; midDate = newDate() - 2.5; newDate = newDat
我需要检查对象“objCR”是否存在于当前范围内。我尝试使用以下代码。 if(objCR == null) alert("object is not defined"); 让我知道哪里错了。 最佳答案
如何检查 IP 地址是否属于私有(private)类别? if(isPrivateIPAddress(ipAddress)) { //do something } 如有
我正在开发一个 Firefox 插件,它可以转换用户通过用户选择突出显示的屏幕温度。转换后,用户选择将替换为 ID 为 alreadyconverted 的 span HTML 元素,其中包含原始温度
我正在开发一个邮资应用程序,该应用程序需要根据多个邮政编码范围检查整数邮政编码,并根据邮政编码匹配的范围返回不同的代码。 每个代码都有多个邮政编码范围。例如,如果邮政编码在 1000-2429、254
我正在使用 excel 范围进行连接:Set rng = Range("A1:A8")如果范围内的单元格之一为空,则会添加一个空格。 你如何阻止这个空间被添加? 最佳答案 假设您在那些非空单元格中有常
我是一名优秀的程序员,十分优秀!