Javascript 在routeProvider中使用服务属性
我正在尝试在路由内发送带有templateUrl请求的服务属性Javascript 在routeProvider中使用服务属性,javascript,angularjs,Javascript,Angularjs,我正在尝试在路由内发送带有templateUrl请求的服务属性catId 我有服务功能 myApp.factory('formAction', [function () { var catId return { catId: catId, } }]); route.js function ($routeProvider) { $routeProvider.when('/ad/step1', {
catId
我有服务功能
myApp.factory('formAction', [function () {
var catId
return {
catId: catId,
}
}]);
route.js
function ($routeProvider) {
$routeProvider.when('/ad/step1', {
templateUrl: '/ad/place/step-one',
controller : 'Step1Controller'
}).when('/ad/step2', {
templateUrl: function () {
// i dont want pass catId as parametr
return '/ad/place/step-two?catId=' // formAction.catId.
},
controller : 'Step2Controller',
}).otherwise({
templateUrl: '/ad/place/step-one',
controller : 'Step1Controller'
});
}
当我执行步骤2时,必须发送catId
请求
注意:我不希望路线中的passcatId
参数如下:
templateUrl: function (param) {
return '/ad/place/step-two?catId=' + param.catId.
},
有什么方法可以做到吗?因此,当您使用默认(标准)角度布线时,我们可以看到以下内容: templateUrl–{string=| function()=}–返回 ngView应该使用的html模板的路径 如果templateUrl是一个函数,则将使用以下命令调用它 参数:
{Array.}
-从当前
$location.path()
通过应用当前路由
因此,模板URL的参数是固定的
这意味着您不能将服务注入此函数
但是,如果您正在使用(最佳角度布线模块IMHO),那么您会发现每个状态都有一个可选参数“templateProvider”,这是一个可以注入的函数
希望能有所帮助。所以,你只需要将你的
catId
值传递给“Step2Controller”?不,我需要发送catId
,因为模板请求的参数似乎是你应用程序中的一个设计缺陷。为什么首先需要为模板发送GET param?