我努力學習AngularJS,但有一件事我不能繞到我的頭。AngularJS分離範圍:VS =
什麼是使用「&」而不是「=」的好處?我發現的所有教程,演示和文檔告訴我,&評估父範圍中的表達式。但是,當我第一次嘗試從我的指令中對我的控制器進行回調時,我只是對父範圍的函數使用了a = binding,並且它工作正常。
例如,在控制器的範圍foo
,需要一個參數bar
一個功能,我可以做一個指令申報像
scope: { callback: '=' },
template: '<div ng-click="callback(value)"></div>'
,包括像
<my-directive callback="foo"></my-directive>
的指令來實現跟&一樣,好像我必須要做
scope: { callback: '&' },
template: '<div ng-click="callback({bar:value})"></div>'
和
<my-directive callback="foo(bar)"></my-directive>
由此看來,我實在看不出優勢。我誤解了&?
編輯:我想,一個有效的除了我的問題是:這是一個壞主意,綁定到父作用域功能使用=代替&?
是執行一種表達對父母的背景下,受益於你的能力?請參閱下面的答案。 – 2014-09-12 13:04:15
增加了更新,並提供了一個有益方案的示例。 – 2014-09-12 13:12:05