我只是angularjs的初学者我想根据名字更改angularjs控制器名称是用templateUrl
编写的。
这是示例
.when({ templateUrl:'template.html',controller:'mycontrollername'})
现在我想在波纹管控制器名称上发送上面的控制器名称。
app.controller('6th-septemberCtrl', ['$scope','$http','filterFilter', function ($scope,$http, filterFilter) {});
我有很多像这样的控制器,所以想发送控制器名称,根据哪条路由templateUrl
点击,改变控制器名称,并按照相同的默认方式编写工作
答案 0 :(得分:0)
我会创建一个静态类,它将保存每个模板的控制器名称。 使用相同的类来获取控制器的名称。这是我在代码中的例子。
var app = angular.module("plunker", ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider
.when("/", {
templateUrl: "main.htm",
controller: getControllerName('main.htm')
})
.when("/red", {
templateUrl: "red.htm",
controller: getControllerName('red.htm')
})
.when("/green", {
templateUrl: "green.htm",
controller: getControllerName('green.htm')
});
});
function getControllerName(url) {
for(var i=0; i<templateControllers.length; i++) {
if(templateControllers[i].url === url)
return templateControllers[i].controllerName;
}
}
var templateControllers = [{
url: 'main.htm',
controllerName: 'mainController'
}, {
url: 'red.htm',
controllerName: 'redtroller'
}, {
url: 'green.htm',
controllerName: 'greenController'
}];
//create controller for main url
app.controller(getControllerName('main.htm'), function($scope) {
$scope.name = 'main';
});
//create controller for red url
app.controller(getControllerName('red.htm'), function($scope) {
$scope.name = 'red';
});
//create controller for green url
app.controller(getControllerName('green.htm'), function($scope) {
$scope.name = 'green';
});