Javascript 将另一个(父)控制器逻辑注入派生状态(angularjs ui路由器)
我被一个问题困住了。我有一个模板URL,但有很多状态变量。我有一个父母州,其他州是孩子们。现在看起来是这样的:Javascript 将另一个(父)控制器逻辑注入派生状态(angularjs ui路由器),javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我被一个问题困住了。我有一个模板URL,但有很多状态变量。我有一个父母州,其他州是孩子们。现在看起来是这样的: angular .module("StN") .config(config); function config($stateProvider) { $stateProvider .state("invoice", { url: "/invoice", templateUrl: "/Scripts
angular
.module("StN")
.config(config);
function config($stateProvider) {
$stateProvider
.state("invoice", {
url: "/invoice",
templateUrl: "/Scripts/js/stn/invoice/invoice.html",
controller: "invoiceController as vm"
})
.state("invoice.custom", {
url: "/castom"
})
.state("invoice.search", {
url: "/search?Status?Invoice?"
});
}
在控制器中,我有开关盒结构,在这里我检查当前状态名称并执行一些不同的逻辑
angular
.module("StN")
.controller("invoiceController", invoiceController);
function invoiceController($http, $state) {
switch (state.name) {
case "invoice.search":
//first logic
break;
case "invoice.custom":
//second logic
break;
case "invoice.status":
//third logic
break;
}
}
我需要为每个状态使用不同的控制器,但此控制器必须具有父控制器(invoiceController)的逻辑。我该怎么做
范例
.state("invoice", {
url: "/invoice",
templateUrl: "/Scripts/js/stn/invoice/invoice.html",
controller: "invoiceController as vm"
})
.state("invoice.custom", {
url: "/castom"
controller: "DerivedinvoiceController as vm" //but it must have logic of base controller
})
尽你所能。将此逻辑与工厂分开,并在父控制器及其子控制器中使用此工厂。请尽最大努力。将此逻辑分离到工厂,并在父控制器及其子控制器中使用此工厂。可能是您可以继承ParentController逻辑,我认为可以,但我的老板告诉我,这不是最佳变体(他告诉我需要测试),可能是您可以继承ParentController逻辑,我认为可以,但我的老板告诉我,这不是最好的变体(他说这是测试的需要)