以下是使用Angular JS创建路径的简单示例:
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'
});
}]);
来自here
的来源正如您所看到的,每个动作都有不同的控制器(添加,删除等)
我的问题是下一个:是否可以只创建一个控制器但功能与上面的控制器具有相同的逻辑(只需创建控制器EmpCtrl
并添加函数add()
,{{1}等)并将此功能应用于路线?示例:
delete()
如果有可能是好方法吗?
答案 0 :(得分:0)
是的,这是可能的。但是我不会说这是一个好方法。控制器只是意味着获取信息并将其绑定到范围 - 不再需要。如果两个状态具有相同的控制器,这意味着它们正在共享信息,而可能只是一个控制器/状态。
答案 1 :(得分:0)
是的,可以创建一个AngularJs控制器并将其分配给列表,创建,更新和删除路由。
每个CRUD功能都可以在一个控制器内部。 但控制器:' EmpCtrl' < - 这里以某种方式使用EmpCtrl.list()这是不可能的。 AngularJs仅表示控制器类。
答案 2 :(得分:0)
您在谈论String[] allParams = ArrayUtils.add(otherParams, 0, param1); //Insert the first param at the first position of the array.
。
Angular的prototypical inheritance
继承$scope
。 prototypically
的示例。
假设您的父状态如下:
ui-router
上述父母的子女状态如下:
.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
。我们在bubbled up
州调用了parentMethod()
。它无法在那里找到。因此,它会转到父级并尝试调用parent.child
。这一直持续到parentMethod
。如果在任何地方都找不到该方法,则会获得$rootScope
。
如果我的解释听起来有点混乱,请点击Reference Error
。