Javascript 在Angular JS中使用一个控制器进行路由
以下是使用角度JS创建管线的简单示例:Javascript 在Angular JS中使用一个控制器进行路由,javascript,angularjs,angular-routing,Javascript,Angularjs,Angular Routing,以下是使用角度JS创建管线的简单示例: var EmpApp = angular.module('EmpApp', [ 'ngRoute', 'EmpControllers' ]); EmpApp.config(['$routeProvider', function ($routeProvider) { $routeProvider.when('/list', { templateUrl: 'Employee/list.html', c
var EmpApp = angular.module('EmpApp', [
'ngRoute',
'EmpControllers'
]);
EmpApp.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/list', {
templateUrl: 'Employee/list.html',
controller: 'ListController'
}).
when('/create', {
templateUrl: 'Employee/edit.html',
controller: 'EditController'
}).
when('/edit/:id', {
templateUrl: 'Employee/edit.html',
controller: 'EditController'
}).
when('/delete/:id', {
templateUrl: 'Employee/delete.html',
controller: 'DeleteController'
}).
otherwise({
redirectTo: '/list'
});
}]);
来源于
正如您所见,每个操作(添加、删除等)都有不同的控制器
我的下一个问题是:是否可以只创建一个控制器,但其功能与上述控制器中的逻辑相同(只需创建控制器EmpCtrl
和添加函数add()
,delete()
等),并将此函数应用于路由?例如:
$routeProvider.when('/list', {
templateUrl: 'Employee/list.html',
controller: 'EmpCtrl' <-- here somehow use EmpCtrl.list()
}).
when('/create', {
templateUrl: 'Employee/edit.html',
controller: 'EmpCtrl' <-- here somehow use EmpCtrl.add()
})
$routeProvider.when(“/list”{
templateUrl:'Employee/list.html',
控制器:“EmpCtrl”是的,这是可能的。但是我不认为这是一个好的方法。控制器只是用来获取信息并将其绑定到作用域-不再是。如果两个状态有相同的控制器,这意味着它们共享信息,可能只是一个控制器/状态。是的,可能会创建sin使用AngularJs控制器并将其分配给,用于列表、创建、更新和删除路由
每个CRUD功能都可以位于一个控制器内。
但是controller:'EmpCtrl'您所说的是原型继承
。
Angular的$scope
继承了原型
。示例为ui路由器
假设您有一个父状态,如:
.state(parent, {
abstract: true,
controller: function($scope) {
$scope.parentMethod = function() {
console.log("Found on parent")
}
}
})
以及上述父对象的子状态,如:
.state(parent.child, {
controller: function($scope){
$scope.parentMethod(); // Implementation at parent state
}
})
对parentMethod
的调用是从当前调用点弹出的调用。我们调用了parentMethod()
处于parent.child
状态。在那里找不到该方法。因此,它会转到父级并尝试调用parentMethod
。这会一直持续到它到达$rootScope
。如果在任何地方都找不到该方法,则会出现引用错误
如果我的解释听起来令人困惑的话,谷歌原型继承和角度$scope和$rootScope