2014-07-04 31 views
0


Angular:有沒有辦法猜測一個範圍是否被橫掃?

你好,爲了我的代碼的目的,我需要確定一個特定的$scope是否被transcluded或沒有。想象一下,在你的代碼裏面的某個地方,你需要製作.parent().parent()...parent(),你需要檢查結果範圍是否包含一個。有沒有辦法做到這一點?

[我的目標]
我的目標是做一樣的東西:

if($scope.isTranscluded()) { 
    //do one thing. 
} else { 
    //do another thing. 
} 

謝謝您的時間!

+0

見http://zachsnow.com/#!/blog/2013/angularjs-multi-transclusion/ – TechGuy

+1

如果您()父母()...父母()你做錯了什麼 – charlietfl

+0

@charlietfl我不是在做.parent()。parent()... parent()。我的邏輯需要一些時間來解釋,但這種情況下的邏輯與問題無關。對不起,這個混亂的例子。 –

回答

1

出人意料的是,你有一個內部的私有財產:$$transcluded

所以,你可以檢查:if($scope.$$transcluded) {

然而,由於它是一種私人財產($$),你不能依賴它不是未來的突破版本。


你也應該看看源代碼

https://github.com/angular/angular.js/blob/v1.2.19/src/ng/compile.js#L976

+0

非常感謝您的解決方案!似乎我錯過了看到這個財產。由於涉及到$$ transcluded作爲私人,可悲的是我知道,但我已經依賴一些私人角碼,所以這個解決方案完全符合我的問題。謝謝! +1。 –

相關問題