2017-03-08 9 views
0

私はanglejsの初心者です。anglejsコントローラ名を変更したいのですが、名前はtemplateUrlと書かれています。ここでanglejsコントローラ名の変更方法

は例

.when({ templateUrl:'template.html',controller:'mycontrollername'}) 

で、今私は怒鳴るコントローラ名でコントローラ名の上送信します。

app.controller('6th-septemberCtrl', ['$scope','$http','filterFilter', function ($scope,$http, filterFilter) {}); 

私はこのような多くのコントローラを持っているので、imigiatilyクリックし、コントローラ名を変更し、

答えて

0

私は1つの静的クラスを作成するのと同じデフォルトの方法のように書かれたとして働いていたはずですされているルートtemplateUrlによるコントローラ名を送信したいですテンプレートごとにコントローラ名を保持します。 同じクラスを使用して、コントローラの名前を取得します。ここにコードの私の例があります。

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'; 
}); 
+0

おかげでたくさんご返信用しかし、私が作った別のコントローラにはしたくない、ただ一つのコントローラを作成して、約25のコントローラを持っているので、ルーティングされたページをに従ってので、すべてのコントローラでのみ名前とパスを変更して名前を渡したいです私はそれが唯一のものであるべきだと思った。それは良いですか? – Zeeshan

+0

こんにちはゼーシャン、だからあなたは同じコントローラを使用したい場合はなぜ別の名前が必要ですか?コントローラーとその動作がすべてのテンプレートURLに対して同じであれば、すべてのコントローラーを1つだけ使用できます。 –

+0

こんにちはルペッシュ、ng-controller = '名前'とは別のtemplateUrlで別の名前を持っています – Zeeshan

関連する問題