我有一個返回JSON服務,假設這是響應:AngularJS - 訪問JSON對象關聯到一個模型
{
"model": 48870,
"id": 20
}
我可以這樣做:
$scope.response = Service.get();
它將分配JSON響應$scope.response
。這裏的問題是,我無法分別通過$scope.response.model
或$scope.response.id
直接訪問model
或id
。我對這種情況的解決方法是在服務的成功回調中定義一個函數,並從data
獲取model
或id
。但考慮到$scope.response
包含整個JSON對象,並且理論上(和乾淨代碼的緣故)讓我訪問它的子項,這不是很實際。這裏
兩個問題:
- 是它的模型AngularJS表示的限制嗎?
- 如何在不需要爲每個呼叫定義成功回調的情況下指向兒童(甚至是孫子女)?
1.不,在AngularJS中沒有這樣的限制。 2.取決於您如何使用此模型:html-template數據綁定或控制器代碼。在後者的情況下,你必須確保在使用它之前加載'$ scope.response.model'(例如,成功回調),否則你會得到一個ReferenceError。 –
你的Service.get()是什麼樣的?如果您使用$ http.get或類似的東西,這可能是與該函數返回一個Promise而不是實際的JSON有關的問題。這可以通過承諾「在角度上被模板引擎識別」這一事實而加劇,這意味着在模板中,您可以將附加到範圍的承諾視爲它們的結果值。「 [$ q](http://docs.angularjs.org/api/ng.$q) –
你們其中一位應該提供他的評論作爲答案,以便我可以接受。兩者對我都是正確和有效的。 – abstractpaper