我是angularjs的新手,只是无法弄清楚mange的基本情况,这里是:
我的路线是这样定义的:
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/list', {
templateUrl: 'list.html',
controller: 'studentCtrl'
}).
when('/detail/:id', {
templateUrl: 'detail.html',
controller: 'studentCtrl'
}).
otherwise({
redirectTo: '/list'
});
}]);
在我的列表视图中,我的$scope
将有一个模型变量,其中包含学生列表。在我的详细视图中,我的模型变量将包含一个学生。我的问题是如何在controller
级别管理此问题。现在我有以下代码,它总是返回一个学生列表:
app.controller('studentCtrl', function($scope,) {
$scope.model= [
{ Name : 'Nicolas', Age: 30, Email: 'nick@gmail.com' },
{ Name : 'Paul', Age: 45, Email: 'paul@gmail.com' },
{ Name : 'Mary', Age: 17, Email: 'mary@gmail.com' },
];
});
基于某些条件,我需要能够用列表或单个学生填写模型。通过将$ routeParams注入我的控制器功能是最好的方法吗?我完全不在赛道上了吗?
PS 我知道直接在我的控制器中管理数据并不是最好的方法,使用工厂或服务可能是最好的做法,我还没有,因为我还在学习过程中。 / em>的
答案 0 :(得分:0)
也许如果您使用$routeParams服务组件,它可以检查网址中的当前ID。
$ routeParams允许AngularJS匹配配置$ routeProvider时设置的url参数。例如,followint语句:
意思是:
SO:
http://yoursite.com/detail/10使$ routeParams.id返回整数10
app.controller('studentCtrl', function($scope, $routeParams) {
if($routeParams.id){
'call /detail/:id url';
} else {
'call /list';
$scope.model= [
{ Name : 'Nicolas', Age: 30, Email: 'nick@gmail.com' },
{ Name : 'Paul', Age: 45, Email: 'paul@gmail.com' },
{ Name : 'Mary', Age: 17, Email: 'mary@gmail.com' },
];
}
});