种子应用程序使用引用控制器的路由,控制器的定义如下:
function MyCtrl1() {}
MyCtrl1.$inject = [];
寻找一个更好的例子(即)显示注入,也许是一个 HTTP 获取和更新范围?
谢谢。
我不确定你到底想要什么,但这里有一个更复杂的例子。
控制器:
function MyCtrl1 ( $scope, $http ) {
$http.get( '/some/location' ).success( function ( data ) {
$scope.items = data;
});
}
MyCtrl1.$inject = [ '$http' ];
看法:
<div ng-controller="MyCtrl1">
<ul>
<li ng-repeat="item in items">{{item.name}}</li>
</ul>
</div>
评论:
在现实世界的场景中,$http 调用将位于您自己的服务中,而该服务将被注入到控制器中。另外,我建议不要在全局空间中定义控制器。定义相同控制器的更好方法如下:
angular.module('myApp', [])
.controller( 'MyCtrl', [ '$http', function MyCtrl1 ( $scope, $http ) {
$http.get( '/some/location' ).success( function ( data ) {
$scope.items = data;
});
}]);
更新:
没有作用域的控制器是无用的——真的什么都做不了——所以 Angular 会自动将 $scope 注入到每个控制器中。必须请求注入所有其他服务。和MyCtrl1.$inject
数组语法都是在缩小后仍然保持功能所必需的。如果您使用我的代码创建示例文件并删除该$inject
行,它仍然可以工作。但是当您缩小 Javascript 时,变量名称会减少,因此我们将重要信息放在字符串中。
我建议阅读本教程以及观看AngularJS YouTube 频道上的一些视频,例如这个。