我有以下問題所困擾的信息:AngularJS不能脫身對象
我碰到這是從我的services.js打電話給我的後端服務的JSON響應。 詳細: (這是最後很多嘗試的...)
'use strict';
/* Services */
var testServices = angular.module('testServices', ['ngResource']);
var eventtracker = {};
...
testServices.factory('TestSvc',
function($rootScope, $http, $timeout) {
initTest: function(){
var dataresponse = {};
dataresponse.events = new Array();
dataresponse.currentuser = "";
dataresponse.error = "";
eventtracker.lasteventindex = 0;
$http.get('rest/testservice/test/events/0').then(function(r) {
if (r.data.error === null){
eventtracker.lasteventindex = r.data.events.length; // == save last event index
....
//doing a lot of stuff here to collect all data to dataresponse object
....
//for example:
for (var i=0;i<parseInt(eventtracker.lasteventindex);i++)
{
for (sKey in r.data.events[i])
{
//scan for controller
if (sKey==="controller"){
if (i===parseInt(eventtracker.lasteventindex) - 1){
//get current user
dataresponse.currentuser = r.data.events[i][sKey];
}
c++;
dataresponse.events[c] = new Object();
dataresponse.events[c]["controller"] = r.data.events[i][sKey];
dataresponse.events[c]["column"] = r.data.events[i][sKey];
}
}
}
....
//and so on...
}
}
//after all of that, datresponse object will be returned
return dataresponse;
}
};
}
);
到目前爲止好...
現在,當我通過對象到$ scope.data並做了{{data | json}}一切正常! (Json有效並且輸出正確!)。
但是,如果我想獲得一些特定的信息出來的對象(從我的控制器,將它傳遞給正確的$範圍,它不工作)。 詳細:
去控制器。 JS:
的$ scope.datatestControllers.controller('TestCtrl', ['$scope', 'TestSvc', '$routeParams', '$log',
function($scope, TestSvc, $routeParams, $log) {
$scope.data = TestSvc.initTest(); //this is working!!
}
]);
輸出({{數據| JSON}}):
{
"events": [
{
"controller": "TESTUSER",
"column": 1
},
{
"controller": "TESTUSER",
"column": 2
},
{
"controller": "TESTUSER",
"column": 3
},
{
"controller": "TESTUSER",
"column": 0
}
],
"currentuser": "TESTUSER",
"error": ""
}
,我能得到的所有信息了這個對象的模板SI de: Test1:{{data.events [0] .controller | json}}
結果是:TESTUSER - > PERFECT!
但是,正如我所說的,如果我想從控制器端的對象中獲取任何詳細信息 - 我無法做到。
例如: 通過在控制器功能這樣做:
$scope.test = $scope.data.currentuser;
結果:無上視圖級別(沒有錯誤,只是沒有)
模板: {{測試}}
或
控制器:
$scope.test = $scope.data.events[0].controller;
結果:在視圖方面,現在角度完全停止工作 - 但再次沒有錯誤。 在這種情況下,視圖方面的結果是{{test}},現在還沒有其他所有內容被解析。
,只有把完整的對象$ scope.test其工作:
$scope.test = $scope.data //-> works! (output is json like above)
我也試圖讓有關控制器側的對象的詳細信息,例如:
$scope.data.events.length
它返回0 - >始終爲0 ...
我真的不明白...
當然我想嘗試的很多更像:
$scope.test = $scope.data.events[0]["controller"]; -> angular "stops" working
$scope.test = $scope.data[0]; -> nothing happens
$scope.test = $scope.data[0]["currentuser"]; -> angular "stops" working
和和和....
這是爲什麼不工作的控制器的一面,但它正在查看側和服務側?!?!
我只是能夠解析整個對象扔控制器,但我無法得到任何信息...... 我敢肯定,我剛剛監督的東西 - 不幸的是我不'知道什麼...
非常感謝球員和KR, 馬丁
你需要學會正確地制定一個問題。就像現在這樣,它太多的文字說得沒什麼。到點 – RedHotScalability
恩,感謝您的建議RedHotScalability - 我會盡我所能下一次。 – user3234752