AngularJS手动初始化

时间:2014-05-05 18:33:03

标签: javascript angularjs

从页面https://docs.angularjs.org/guide/bootstrap上提供的示例中,我可以看到像这样的手动初始化

<!doctype html>
<html>
<body>
  Hello {{'World'}}!
  <script src="http://code.angularjs.org/angular.js"></script>

  <script>
    angular.module('myApp', [])
      .controller('MyController', ['$scope', function ($scope) {
        $scope.greetMe = 'World';
      }]);

    angular.element(document).ready(function() {
      angular.bootstrap(document, ['myApp']);
    });
  </script>
</body>
</html>

实际上它不能正常工作,但无论如何我想让它像这样工作,我不想在ng-controller指令中明确指定我的控制器只是为了让它在那里。我想将此控制器绑定到整个页面,而无需使用HTML进行额外操作。因为我只想将它用于ajax调用。有可能吗?

2 个答案:

答案 0 :(得分:0)

浏览器无法找到资源http://code.angularjs.org/angular.js 查看浏览器上的网络面板(开发人员工具)是否返回404错误。 试试https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.6/angular.min.js

答案 1 :(得分:0)

如果要创建专门用于AJAX调用的对象,那么您应该查看AngularJS services。服务是可以注入控制器,其他服务和指令的对象,它们通常提供某种可重用的功能(在您的情况下,它将提供AJAX功能)。

控制器的目的是提供与视图交互的逻辑。如果您正在创建一个不以某种方式与视图交互的控制器,那么您做错了。

您的ajax服务可能如下所示:

<script>
    var myApp = angular.module('myApp', [])
        // notice the inclusion of 'myAjax' here. This is where we are injecting our
        // custom service that me made.
        .controller('MyController', ['$scope', 'myAjax', function ($scope, myAjax) {

            $scope.url = 'cutepuppies.com';
            $scope.params = {
                cutenessLevel: 'extraCute'
            };

            function successcb(data, status, headers, config) {
                //something on success
            }
            function failure(data, status, headers, config) {
                //something on failure
            }
            $scope.get = function () {
                // This is where we use our service to make an ajax call!
                // We also pass in 2 callbacks, one to be called on success and one on error
                myAjax.get($scope.url, $scope.params, successcb, failurecb);
            }
        }]);

    // Here we define our service. This is what we will use in our app to make ajax calls.
    myApp.service('myAjax', ['$http', function ($http) {
        return {
            get: function (url, params, successcb, failurecb) {
                $http.get({
                    method: 'GET',
                    url: url,
                    params: params
                })
                .success(successcb)
                .error(failurecb);
            }
        }
    });

</script>

这是指向$ http服务的链接,供参考:https://docs.angularjs.org/api/ng/service/$http