我正在尝试将$window
对象注入AngularJS中的config
方法,但我一直收到错误...
这样做的正确方法是什么?
这是我的代码:
angular.module('myApp', ['$window']) //is this wrong?
.config(function ($window) { //this is not the way?
console.log($window); //console.log fails //error
})
.controller("main", function($scope) {
$scope.index = 0;
$scope.num = number[$scope.index];
$scope.increase = function () {
$scope.index += 1;
$scope.num = number[$scope.index];
}
})
答案 0 :(得分:81)
您无法向配置注入<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke android:color="#00000000"/>
<size android:height="1dp"/>
</shape>
服务,因为尚未在配置时初始化服务。但是,您可以注入提供者并获取实例。在你的情况下:
$window
答案 1 :(得分:11)
只能在配置块中注入 常量和提供程序 。 $window
是 服务 。 &安培;执行配置块时可能无法使用或配置,因此angular会阻止它使用它。
您可以使用运行块。这是角度应用程序的主要方法。这是在实例化应用程序之前执行的。到执行运行块时,所有服务都将完成配置并准备注入。因此,您可以使用$window
,如下所示
angular.module('myApp', ['$window'])
.run(function ($window) { //use run rather than config
console.log($window);
})
.controller("main", function($scope) {
$scope.index = 0;
$scope.num = number[$scope.index];
$scope.increase = function () {
$scope.index += 1;
$scope.num = number[$scope.index];
}
})