我在使用隔離範圍的指令中使用單向綁定時遇到了問題。爲什麼1-way綁定在angularjs中不起作用?
如果我使用等號進行雙向綁定,並使用如下的數據:{{d.name}}
,它可以工作。
如果我使用@符號,它不起作用。如果我使用等號並使用如下數據:{{::d.name}}
,它也會失敗。
您可以在此plunker看到我的完整的例子:http://plnkr.co/edit/8bUl8pZSV8Ryru6GDq2M?p=preview
是否有人可以幫助我瞭解這裏發生了什麼?謝謝。
我在使用隔離範圍的指令中使用單向綁定時遇到了問題。爲什麼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