将控制器的公共部分分离成一个公共控制器
Separate common parts of controller into a common controller
我正在使用 AngularJS 和 uiRouter 开发网络应用程序。我开发了我的路线配置如下:
(function () {
'use strict';
var module = angular.module('app', ['ngMaterial', 'ui.router']);
function Config($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider.state('Home', {
url: '/',
templateUrl: 'Partials/homeview.html',
controller: 'homeCtrl'
}).state('Table', {
url: '/tableview',
templateUrl: 'Partials/tableview.html',
controller: 'tableCtrl'
}).state('List', {
url: '/listview',
templateUrl: 'Partials/listview.html',
controller: 'listCtrl'
}).state('New', {
url: '/new',
templateUrl: 'Partials/new.html',
controller: 'newCtrl'
}).state('Edit', {
url: '/edit/:index',
templateUrl: 'Partials/edit.html',
controller: 'editCtrl'
});
}
Config.$inject = ["$urlRouterProvider", "$stateProvider"];
module.config(Config);
}());
某些控制器传递给视图的代码是重复的,所以我想知道是否有办法同时将 2 个控制器传递给视图,或者是否有办法创建一个将文件与复制控制器的特定部分分开,并将其作为依赖注入传递到所需的控制器中。
您不能将两个控制器链接到一个 uiRouter 路由。但是您当然可以创建包含您的通用功能的服务或工厂。 (有关更多研究,请参阅 angular.service vs angular.factory。)
var app = angular.module('app',[])
app.service('myFunctions',function() {
this.addNumbers = function(a,b) {
// calculate some stuff
return a+b;
}
}
app.controller('myController',function(myFunctions){
myFunctions.addNumbers(2,2); // 4
})
我正在使用 AngularJS 和 uiRouter 开发网络应用程序。我开发了我的路线配置如下:
(function () {
'use strict';
var module = angular.module('app', ['ngMaterial', 'ui.router']);
function Config($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider.state('Home', {
url: '/',
templateUrl: 'Partials/homeview.html',
controller: 'homeCtrl'
}).state('Table', {
url: '/tableview',
templateUrl: 'Partials/tableview.html',
controller: 'tableCtrl'
}).state('List', {
url: '/listview',
templateUrl: 'Partials/listview.html',
controller: 'listCtrl'
}).state('New', {
url: '/new',
templateUrl: 'Partials/new.html',
controller: 'newCtrl'
}).state('Edit', {
url: '/edit/:index',
templateUrl: 'Partials/edit.html',
controller: 'editCtrl'
});
}
Config.$inject = ["$urlRouterProvider", "$stateProvider"];
module.config(Config);
}());
某些控制器传递给视图的代码是重复的,所以我想知道是否有办法同时将 2 个控制器传递给视图,或者是否有办法创建一个将文件与复制控制器的特定部分分开,并将其作为依赖注入传递到所需的控制器中。
您不能将两个控制器链接到一个 uiRouter 路由。但是您当然可以创建包含您的通用功能的服务或工厂。 (有关更多研究,请参阅 angular.service vs angular.factory。)
var app = angular.module('app',[])
app.service('myFunctions',function() {
this.addNumbers = function(a,b) {
// calculate some stuff
return a+b;
}
}
app.controller('myController',function(myFunctions){
myFunctions.addNumbers(2,2); // 4
})