我遇到了一个问题。我有一个模板URL,但有很多状态变体。我有一个父州,其他州是孩子。现在看起来像这样:
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
})
答案 0 :(得分:0)
你能做的最好。将此逻辑分离到Factory,并在父控制器及其子项中使用此工厂。