Angularjs Angular 1.4-在$routeProvider中重用相同的控制器
我试图使用$routeProvider在完整视图和移动视图上使用相同的控制器。下面的代码不是现成的。我错过了什么 我还可以使用另一种想法——相同的控制器,但基于用户代理的模板URL不同。我可以这样做吗Angularjs Angular 1.4-在$routeProvider中重用相同的控制器,angularjs,route-provider,Angularjs,Route Provider,我试图使用$routeProvider在完整视图和移动视图上使用相同的控制器。下面的代码不是现成的。我错过了什么 我还可以使用另一种想法——相同的控制器,但基于用户代理的模板URL不同。我可以这样做吗 $routeProvider .when("/details/:id", { templateUrl: "views/details.html", controller: "detailsController"
$routeProvider
.when("/details/:id", {
templateUrl: "views/details.html",
controller: "detailsController"
})
.when("/mdetails/:id", {
templateUrl: "views/mobiledetails.html",
controller: "detailsController"
})
}])
您可以使用共享相同功能(控制器逻辑)的两个不同控制器,或使用使用其自身功能但与内部所有逻辑共享服务的两个不同控制器 以下是第一个案例的示例:
angular.module('FunnyAnt.Examples.Routing',['ngRoute']);
函数sharedController($scope){
$scope.name=“共享”;
}
angular.module('FunnyAnt.Examples.Routing')
.controller(“家庭控制器”、“共享控制器”);
angular.module('FunnyAnt.Examples.Routing')
.controller('AboutController',sharedController);
angular.module('FunnyAnt.Examples.Routing')
.config(函数($routeProvider){
$routeProvider。
当(“/home”{
templateUrl:'embedded.home.html',
控制器:“HomeController”
}).
当(“/关于”{
templateUrl:'embedded.about.html',
控制器:“关于控制器”
}).
否则({
重定向到:'/home'
});
});代码>
主页:{{name}
关于:{{name}
如果主持人看到,请-删除问题
我不知道到底发生了什么,但一切正常
$routeProvider
.when("/details/:id", {
templateUrl: "views/details.html",
controller: "detailsController"
})
.when("/mdetails/:id", {
templateUrl: "views/mobiledetails.html",
controller: "detailsController"
})
}])
我制作的控制器内部变量是可移动的(ism),我使用它来实现额外的逻辑
谢谢大家
$scope.ism = $location.path().indexOf('/mflights') === 0;
它是否适用于您的第一个视图?您是否在index.html
中包含了detailsController
文件?当我使用2个js文件时,一切都很好。我想避免复制粘贴<代码>$routeProvider.when(“/details/:id”{templateUrl:“views/details.html”,controller:“detailsController”})。when(“/mdetails/:id”{templateUrl:“views/mobiledetails.html”,controller:“mdetailsController”}”)当您说它不起作用时,您的意思是您在控制台中看到了错误吗?您能创建一个JSFIDLE来向我们显示错误吗?但是简单的重用也是有效的,对吗.when(“/details/:id”{templateUrl:“views/details.html”,controller:“details controller”})。when(“/mdetails/:id”{templateUrl:“views/mobiledeails.html”,controller:“details controller”})
对此不确定,更正确的做法是声明两个单独的控制器并重用共享服务,或者在bothi上使用相同的函数控制器。我不知道到底发生了什么,但现在我所有的代码都可以简单地重用。不知道,如何删除问题虽然。