ui-路由器控制器或angular控制器
ui-router controller or angular controller
我正在使用 ui-router 来路由我的应用程序。在 ui-router 上,我可以像
这样定义控制器
myApp.config(function($stateProvider, $urlRouterProvider) {
//
// For any unmatched url, redirect to /state1
$urlRouterProvider.otherwise("/state1");
//
// Now set up the states
$stateProvider
.state('state1', {
url: "/state1",
templateUrl: "partials/state1.html"
})
.state('state1.list', {
url: "/list",
templateUrl: "partials/state1.list.html",
controller: function($scope) {
$scope.items = ["A", "List", "Of", "Items"];
}
})
在这里您可以看到 ui-路由器状态对象上的控制器定义。
我的问题是,定义一个angular控制器还是ui-路由器控制器更常见?
angular.module('controllerExample', [])
.controller('SettingsController2', ['$scope', SettingsController2]);
“什么更常见”是一个非常宽泛的问题,但是。
有几点需要考虑:
- 什么类型的状态及其嵌套方式(如果它是只显示大量数据的嵌套状态可能没问题)
- 控制器有多大? (可以内联处理 2-3 行逻辑)
- 您如何构建您的应用程序?
最后,更好的做法是将所有内容放在有组织的 1 个位置,而不是拆分您的控制器定义,因此如果要从这两种方法中选择,不要内联定义您的控制器.
我说不出哪个更常见,只是为什么要使用第二种方法。
首先,如果我们将控制器声明为SettingsController2
(object/function),我们可以多次使用它。
其次,这种方法创建了一个真实的类型,一旦您观察性能工具(内存分析器),以后就可以很容易地追踪(找到)
最后,如果我们将使用一些 JS++
,例如 Typescript
或 AtScript
,我们可以轻松地使用 继承 甚至其他功能。 ..
所以尽可能不要使用内联定义
我正在使用 ui-router 来路由我的应用程序。在 ui-router 上,我可以像
这样定义控制器myApp.config(function($stateProvider, $urlRouterProvider) {
//
// For any unmatched url, redirect to /state1
$urlRouterProvider.otherwise("/state1");
//
// Now set up the states
$stateProvider
.state('state1', {
url: "/state1",
templateUrl: "partials/state1.html"
})
.state('state1.list', {
url: "/list",
templateUrl: "partials/state1.list.html",
controller: function($scope) {
$scope.items = ["A", "List", "Of", "Items"];
}
})
在这里您可以看到 ui-路由器状态对象上的控制器定义。
我的问题是,定义一个angular控制器还是ui-路由器控制器更常见?
angular.module('controllerExample', [])
.controller('SettingsController2', ['$scope', SettingsController2]);
“什么更常见”是一个非常宽泛的问题,但是。
有几点需要考虑:
- 什么类型的状态及其嵌套方式(如果它是只显示大量数据的嵌套状态可能没问题)
- 控制器有多大? (可以内联处理 2-3 行逻辑)
- 您如何构建您的应用程序?
最后,更好的做法是将所有内容放在有组织的 1 个位置,而不是拆分您的控制器定义,因此如果要从这两种方法中选择,不要内联定义您的控制器.
我说不出哪个更常见,只是为什么要使用第二种方法。
首先,如果我们将控制器声明为SettingsController2
(object/function),我们可以多次使用它。
其次,这种方法创建了一个真实的类型,一旦您观察性能工具(内存分析器),以后就可以很容易地追踪(找到)
最后,如果我们将使用一些 JS++
,例如 Typescript
或 AtScript
,我们可以轻松地使用 继承 甚至其他功能。 ..
所以尽可能不要使用内联定义