为什么1-way绑定在angularjs中不起作用?
问题描述:
我在使用隔离范围的指令中使用单向绑定时遇到了问题。为什么1-way绑定在angularjs中不起作用?
如果我使用等号进行双向绑定,并使用如下的数据:{{d.name}}
,它可以工作。
如果我使用@符号,它不起作用。如果我使用等号并使用如下数据:{{::d.name}}
,它也会失败。
您可以在此plunker看到我的完整的例子:http://plnkr.co/edit/8bUl8pZSV8Ryru6GDq2M?p=preview
是否有人可以帮助我了解这里发生了什么?谢谢。
答
您尝试使用的单向绑定语法自从Angular 1.3开始引入。
在您的演示中,您使用的是1.2.25版。
您必须更改脚本链接:
<script data-require="[email protected]" src="https://code.angularjs.org/1.3.0/angular.js" data-semver="1.2.25"></script>
与第二指令的问题,而是在于@
不是单向绑定,它只是需要的属性为文本。
喜欢你会使用它,所以你需要将它传递给指令之前进行插值文本,这样
<h3>Directive 2</h3>
<p ng-repeat="d in data">
<dir2 d="{{d.name}}"></dir2>
</p>
的@给你单向到一个范围变量的结合属性的文本。 The ::给你一个* time *绑定,这是不同的。 – 2015-07-06 23:15:27