Angularjs 无法访问';窗口';不带控制器的角度表达式中的对象

Angularjs 无法访问';窗口';不带控制器的角度表达式中的对象,angularjs,Angularjs,我试图仅在HTTP协议中显示 以下是我到目前为止的情况: angular .module('myApp',[]) .controller('myCtrl',['$scope','$window',函数($scope,$window){ $scope.name='Superhero'; console.log('$window.location.protocol='+$window.location.protocol);//正在检查 }]); 这只需要在http中显示。 你好,{{name}}

我试图仅在
HTTP
协议中显示

以下是我到目前为止的情况:

angular
.module('myApp',[])
.controller('myCtrl',['$scope','$window',函数($scope,$window){
$scope.name='Superhero';
console.log('$window.location.protocol='+$window.location.protocol);//正在检查
}]);

这只需要在http中显示。

你好,{{name}}!
不确定$window为什么不工作,但以下是您可以尝试的解决方案-

在控制器内使用比较运算符,然后在根范围中添加模型,该模型可在控制器范围外访问-

请参考下面的代码片段,希望这能解决您的问题-

angular
.module('myApp',[])
.controller('myCtrl'、['$scope'、'$window'、'$rootScope',函数($scope、$window、$rootScope){
$scope.name='Superhero';
$rootScope.httpOnly=$window.location.protocol==='http:';
}]);

外部控制器

你好,{{name}}!
不确定$window为什么不工作,但以下是您可以尝试的解决方案-

在控制器内使用比较运算符,然后在根范围中添加模型,该模型可在控制器范围外访问-

请参考下面的代码片段,希望这能解决您的问题-

angular
.module('myApp',[])
.controller('myCtrl'、['$scope'、'$window'、'$rootScope',函数($scope、$window、$rootScope){
$scope.name='Superhero';
$rootScope.httpOnly=$window.location.protocol==='http:';
}]);

外部控制器

你好,{{name}}!
不确定$window为什么不工作,但以下是您可以尝试的解决方案-

在控制器内使用比较运算符,然后在根范围中添加模型,该模型可在控制器范围外访问-

请参考下面的代码片段,希望这能解决您的问题-

angular
.module('myApp',[])
.controller('myCtrl'、['$scope'、'$window'、'$rootScope',函数($scope、$window、$rootScope){
$scope.name='Superhero';
$rootScope.httpOnly=$window.location.protocol==='http:';
}]);

外部控制器

你好,{{name}}!
不确定$window为什么不工作,但以下是您可以尝试的解决方案-

在控制器内使用比较运算符,然后在根范围中添加模型,该模型可在控制器范围外访问-

请参考下面的代码片段,希望这能解决您的问题-

angular
.module('myApp',[])
.controller('myCtrl'、['$scope'、'$window'、'$rootScope',函数($scope、$window、$rootScope){
$scope.name='Superhero';
$rootScope.httpOnly=$window.location.protocol==='http:';
}]);

外部控制器

你好,{{name}}!
因为在表达式中只能使用作用域属性。那是。是的

这只需要在http中显示


因为在表达式中只能使用作用域属性。那是。是的

这只需要在http中显示


因为在表达式中只能使用作用域属性。那是。是的

这只需要在http中显示


因为在表达式中只能使用作用域属性。那是。是的

这只需要在http中显示


@rahuldesai-即使在这种情况下也应该在控制器内部,对吗?这是如何解决你的问题的?是的,@ManojShevate说得有道理。通过将变量分配给根作用域,代码将在控制器外部可用(这是一件坏事,因为整个应用程序应该由“ng controller”或其他指令控制),它也将由嵌套作用域继承。@rahul desai-即使在这种情况下也应该在控制器内部,对吗?这是如何解决你的问题的?是的,@ManojShevate说得有道理。通过将变量分配给根作用域,代码将在控制器外部可用(这是一件坏事,因为整个应用程序应该由“ng controller”或其他指令控制),它也将由嵌套作用域继承。@rahul desai-即使在这种情况下也应该在控制器内部,对吗?这是如何解决你的问题的?是的,@ManojShevate说得有道理。通过将变量分配给根作用域,代码将在控制器外部可用(这是一件坏事,因为整个应用程序应该由“ng controller”或其他指令控制),它也将由嵌套作用域继承。@rahul desai-即使在这种情况下也应该在控制器内部,对吗?这是如何解决你的问题的?是的,@ManojShevate说得有道理。通过将变量分配给根作用域,代码将在控制器外部可用(这是一件坏事,因为整个应用程序应该由“ng controller”或其他指令控制),它也将由嵌套作用域继承。
$scope.$root.protocol = $window.location.protocol;
<p ng-if="protocol  === 'http:'">This needs to be shown in HTTP only.</p>