Angular Seed ::控制器的示例使用

时间:2013-01-07 18:31:15

标签: angularjs

seed app使用引用控制器的路由,控制器的定义如下:

function MyCtrl1() {} 
MyCtrl1.$inject = [];

寻找更好的示例(即)显示注入,可能是HTTP获取和更新范围?

感谢。

1 个答案:

答案 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