seed app使用引用控制器的路由,控制器的定义如下:
function MyCtrl1() {}
MyCtrl1.$inject = [];
寻找更好的示例(即)显示注入,可能是HTTP获取和更新范围?
感谢。
答案 0 :(得分:1)
我不确定你想要什么,但这是一个更复杂的例子。
<强>控制器:强>
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时,变量名称会减少,所以我们将重要的信息放在字符串中。
我建议浏览tutorial 以及观看AngularJS YouTube channel上的部分视频,例如this one。