我遇到了衝突指令和屬性名稱的問題。這是我的問題的一個簡化版本:有兩個指令,其中第一個指令的名稱是第二個指令的屬性名稱:指令名稱和屬性名稱衝突
angular.module('mymodule').directive('property', function() {
return {
template: '<div>Property Directive</div>'
};
});
angular.module('mymodule').directive('fail', function() {
return {
scope: {
property: '='
},
template: '<div>{{property}}</div>'
}
});
當我嘗試我的第二個指令添加到一個HTML文件:
<fail property="'test'"></fail>
我得到以下錯誤:
Error: [$compile:multidir] Multiple directives [fail, property] asking for template on: <fail property="'test'">http://errors.angularjs.org/1.3.0-rc.4/$compile/multidir?p0=fail&p1=property&p2=template&p3=%3Cfail%20property%3D%22'test'%22%3E
現在,這不會是一個問題,如果這兩個指令是在我的模塊,因爲他們重新命名很容易。但是我在我的應用程序中使用了來自不同外部模塊的指令/屬性名稱。
我該如何判斷角度,property
這個屬性在這個特殊情況下是不是指令?
也許你可以裝飾這些指令2,改變他們的限制,以不同的呢?或者將他們的優先級改爲不同,使得終端選項的指令失敗優先級更高? – PSL 2014-10-17 01:50:59
http://plnkr.co/edit/5Cfn5T?p=preview根據這些指令的作用,您可以更改限制值。 – PSL 2014-10-17 01:59:48
感謝您的幫助和示例代碼。我仍然試圖解決這個問題,因爲改變其他模塊的指令會產生一些副作用。我對Angular很陌生,我覺得我缺少重要的一點。在我看來,像很多人應該遇到這種類型的指令和屬性名稱衝突的問題... 你知道重命名(或添加前綴)從其他模塊的指令名稱嗎? – forrert 2014-10-21 17:54:09