我正在使用ngRoute来读取url参数。我遇到的问题是代码运行时我无法获取ID。但是,如果尝试将其称为函数,我将从url获取值。
.controller('PageCtrl', function ($scope, $routeParams, Survey) {
$scope.survey = Survey.get({surveyId: $routeParams.id}); //doesn't work
this.add = function (pageId, pageIndex) {
console.log($routeParams.id); //works
};
$scope.Page = this;
}
您是否认为在我进行Survey.get()请求时有获取url参数的方法?
答案 0 :(得分:1)
您可以解决此问题的一种方法是等待$ routeChangeSuccess广播被触发,然后初始化$ scope.survey。
即这样的事情
.controller('PageCtrl', function ($scope,$rootScope, $routeParams) {
$rootScope.$on('$routeChangeSuccess',function(){
$scope.survey = Survey.get({surveyId: $routeParams.id}); //doesn't work
});
this.add = function (pageId, pageIndex) {
console.log($routeParams.id); //works
};
$scope.Page = this;
}
答案 1 :(得分:0)
很可能在应用程序启动时只调用一次控制器。这就是你的routeconfig尚未设置并返回undefined的原因。您确定要在routeconfig中为视图指定控制器吗?
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/home', {
templateUrl: 'partials/home.html',
controller: 'HomeCtrl'
}).
otherwise({
redirectTo: '/home'
});
}]);