我只是将角度搞乱了一点,我构建了一个简单的任务API。这个api分配并接受了任务。现在构建的应用程序时,我有以下途径:我该如何设置我的angularjs控制器
TaskManager.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/:username/assigned-tasks', {
templateUrl: 'app/partials/assigned-tasks.html',
controller: 'TaskController'
}).
when('/:username/accepted-tasks', {
templateUrl: 'app/partials/assigned-tasks.html',
controller: 'TaskController'
}).
otherwise({
redirectTo: '/'
});
}]);
,这里是我开始建设,然后实现了任务控制器这是行不通的
TaskManager.controller('TaskController', ['$scope', 'AssignedTasksService', function($scope, AssignedTasksService)
{
$scope.tasks = [];
loadAssignedTasks();
function applyRemoteData(Tasks) {
$scope.tasks = Tasks;
}
function loadAssignedTasks() {
AssignedTasksService.getAssignedTasks()
.then(
function(tasks) {
applyRemoteData(tasks);
}
);
}
}]);
的getAssignedTasks功能可按仅仅是一个函数,运行一个HTTP获取请求的API网址,并返回和错误或API数据
现在,你可以看到分配的任务自动加载一旦它击中TaskController这显然是一个问题,因为我需要也能得到接受d任务。现在,我是否需要为接受的任务创建一个单独的控制器,或者有没有办法让我从控制器中检查url,然后从中决定是否要运行loadAssignedTasks函数或loadAcceptedTasks(我没有创建尚未)。但它只会执行与loadAssignedTasks函数相同的操作,但对于接受的任务
你可以将'$ routeProvider'注入控制器并检查那里的url。或为不同的路线注入不同的服务。 – akonsu 2014-10-18 05:31:46
@akonsu并从那里运行if语句来决定运行哪个函数? – Rodrigo 2014-10-18 05:33:12
好吧,如果你注入'$ routeProvider',那么是的,如果你为不同的路由注入不同的服务,你可以让它们有相同的方法,只需调用这个方法。 – akonsu 2014-10-18 05:40:27