我已經遇到了一些麻煩,從父作用域訪問值,什麼奇怪的行爲似乎是一些奇怪的行爲也。
如果我將$scope.$parent
記錄到控制檯並檢查DOM對象,則有一個屬性topicDiscovery.name
。但是,當我嘗試記錄此($scope.$parent.topicDiscovery.name
)時,它將返回undefined
。
此外,當我嘗試登錄topicDiscovery
對象時,它將返回一個空數組,即使它在DOM中不爲空時爲$scope.$parent
。
這是爲什麼?
我已經遇到了一些麻煩,從父作用域訪問值,什麼奇怪的行爲似乎是一些奇怪的行爲也。
如果我將$scope.$parent
記錄到控制檯並檢查DOM對象,則有一個屬性topicDiscovery.name
。但是,當我嘗試記錄此($scope.$parent.topicDiscovery.name
)時,它將返回undefined
。
此外,當我嘗試登錄topicDiscovery
對象時,它將返回一個空數組,即使它在DOM中不爲空時爲$scope.$parent
。
這是爲什麼?
這意味着$scope.$parent.topicDiscovery
是console.log
後得到改變。執行console.log時,Google chrome不會打印所有json對象。它只是指當前對象。嘗試使用JSON.stringify($scope.$parent)
,在這裏,你會不會爲字符串化是JS對象轉換爲字符串,也不會有一部開拓創新的對象和字符串之間連接的任何記憶得到這個屬性。
這裏是最好的例子。
var d={z:{b:{}}};
console.log(d); //When you check here, d.a_1 is available
console.log("d.a_1",d.a); //Here d.a_1 is not available.
//Here I am adding d.a_1 property
for(var i=0;i<10;i++){
d['a_'+i]=i;
}
你能證明爲什麼downvoted? –
Angular的'$ scope'行爲與普通的JS對象不同。 – Cerbrus
@Cerbrus,瀏覽器控制檯內存操作不知道它是角度還是灰色的。如果您在視圖中渲染該值,則只有您可以獲得該變量的實時更新。 –
什麼是屬性名稱? 'topicDiscovery'或'$ topicDiscovery'? –
你可以添加jsfiddle演示 –
一些通常與範圍混淆。使用適當的作用域繼承並避免$ parent。或者嘗試創建演示,否則不容易猜測和提供幫助。 – dfsq