-1
我用一个problemm注入。我有一个模板URL,但很多变体的状态。我有一个父母国家,其他州是孩子。现在它作用似乎是这样的:将另一个(父级)控制器逻辑注入派生状态(angularjs ui-router)
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
})
可能会继承父控制器逻辑 http://stackoverflow.com/questions/18461263/can-an-angularjs-controller-inherit-from-another-controller-in-the-same-module –
我想它可以,但我的老板告诉,它不是最好的变种(他告诉说它需要测试) –