我有路由配置,如下面的
var app = angular.module("productApp",["ngRoute"]);
app.config(function($routeProvider){
$routeProvider.when("/",
{
templateUrl : "views/home.html",
controller : "homeController"
}).
when("/add/:productId?",
{
templateUrl : "views/products/add.html",
controller : "productController",
resolve : {
checkId: function($q,$timeout,$http,$route,$location){
var defer = $q.defer();
var productData = {};
var productId = $route.current.params.productId;
$http.get("model/checkProductById.php?productId="+productId).then(function(data){
if(data.data.status==1){
productData = data.data.data;
// console.log("afterthis");
// console.log(productData);
defer.resolve(productData);
return productData;
}else{
//defer.reject();
$location.path("/");
}
});
return defer.promise;
}
}
}).
when("/products",
{
templateUrl: "views/products/view.html",
controller: "productController"
});
});
app.controller("homeController",function($scope){
$scope.model = {
message:"Hello World"
};
});
在解析中检查ID是否通过$ http service检查产品ID是否有效。我还检查并返回解析对象中的产品对象。
我的控制器:
app.controller("productController",function($scope, $http,productService,$routeParams,checkId){
$scope.productId = $routeParams.productId;
$scope.model = {
message:"Hello World from products"
};
}));
当我在控制器中传递checkId时,它会给出未知提供者的错误。 如何在控制器中获得解析对象。
由于
答案 0 :(得分:2)
最后通过带有isDefined condition
的$ route获取数据app.controller("productController",function($scope, $http,productService,$routeParams,$route){
$scope.productId = $routeParams.productId;
$scope.model = {
message:"Hello World from products"
};
if(angular.isDefined($route.current)){
console.log($route.current.locals.checkId);
}
});