"하위"상태의 데이터가 필요하며 가져 오기 위해 노력하고 있습니다. 문제는 매번 $ rootScope에서 데이터를 가져 오길 원한다는 것입니다.각도 UI 라우터에서 해결 appStates가 범위 데이터를 전달하지 않음
그래서 여기에 - 내 문제의 개요.
나는 주 공급자를 사용하고 있습니다. 내가 할 모든이가 rootScope.lessons 그래서 난보기를 채울 수있는 개체를 채우기 위해 작동이 dashboardAPI.lessons();
services.factory('dashboardAPI', ['$rootScope', '$q', '$http', function(rootScope, $q, $http) {
function load(path) {
return $http.get("/app/data" + path);
}
return {
lessons: function() {
var deferred = $q.defer();
if (rootScope.lessons == undefined) {
load("/getLessons.json").success(function (data) {
rootScope.lessons = data.result;
deferred.resolve(data.result);
}).
error(function() {
console.log("Problem getting lessons");
});
}
else
deferred.resolve(rootScope.lessons);
return deferred.promise;
}
};
}]);
를 호출 할 수있는 CreateCtrl에서
.state('dashboard.create', {
// parent: 'dashboard',
url: '/create',
views: {
'': {
templateUrl: "/app/partials/create.html",
controller: "CreateCtrl",
}
}
})
: 그래서 여기 내 첫 번째 상태입니다. 또 다른 서비스를 호출하는 것이 컨트롤러에서
.state('dashboard.create.lessons', {
// parent: 'create',
url: '/lessons',
views: {
'curriculum': {
templateUrl: "/app/partials/create.lessons.html",
controller: ['curriculumHash', function(curriculumHash){
curriculumHash.sstHash();
}],
},
}
})
:
그런 다음이 같은 서브 스테이트있다
services.factory('curriculumHash', ['$rootScope', '$q', 'dashboardAPI', function(rootScope, $q, dashboardAPI) {
return {
sstHash: function() {
var deferred = $q.defer();
if (rootScope.sstopicsArray == undefined) {
//Get a promise back from API call
dashboardAPI.lessons().then(function(data) {
rootScope.sstopicsArray = [];
var x = data.Topics;
for (var i=0; i<x.length; i++) {
var y = x[i].Subtopics;
for (var j=0; j<y.length; j++) {
var z = y[j].Subsubtopics;
for (var k=0; k<z.length; k++) {
rootScope.sstopicsArray.push({
Id: z[k].Id,
Name: z[k].Name,
Description: z[k].Description,
List: z[k].Lessons
});
}
}
}
return deferred.resolve();
});
}
else
return deferred.resolve();
}
};
}]);
는 그리고 이것은 또한 작동합니다. 배열을 채울 때 정렬 가능한 jquery 목록을 사용하여 뷰를 채울 수 있습니다. 즉, 나는 매우 긴 객체 (위에서의 수업)를 가져 와서 더 간단한 해시 배열로 분해해야합니다.
나는 내가 그 새로운 해시에서 하나의 개체를 찾을 수있는 하나 개 이상의 하위 (서브) 상태를 필요 : 나는 창을 내 컴퓨터를 척하려는
지금, 여기에있다.나는 해상도를 어떻게 사용하는지에 대한 예의를 찾기 위해 높고 낮음을 검색했습니다. 상관없이 dashboard.create.lessons.detail 상태의 컨트롤러에 정지 시간을 지정하면 정의되지 않은 객체의 길이를 얻을 수 없으므로 getData는 정의되지 않았으며 chrome은 오류를 발생시킵니다.
누구나 팁을 제안 할 수 있습니까? 모델과 함께 놀고 싶어서이 물건이 정말로 필요합니다. 다른 사람이 각도 UI 사이트에있는 것보다 좀 더 철저한 해결 문서를 참조 할 수 있다면 도움이 될 수 있습니다. 감사!
답을 게시 해 주셔서 감사합니다. 처음으로 도형꾼들이 만나는 일반적인 시나리오처럼 보입니다! :) – Whizkid747