【问题标题】:Why alert window not displayed?为什么不显示警报窗口?
【发布时间】:2016-05-18 10:13:43
【问题描述】:

我尝试在我的 angularjs 项目中弹出警报窗口。

这里是plunker

这是视图中的按钮:

 <input type="button" ng-click="fireOnExpand()" value="alert"/>

这是控制器中弹出警报窗口的功能:

  $scope.fireOnExpand = function(){
     $window.alert("eee");
  }

但是当我点击警报按钮时,我没有看到警报窗口。

知道为什么不显示弹出窗口吗?

【问题讨论】:

  • 只用 alert('eee');?
  • 我没有在您链接到的现场演示中看到该代码。
  • 不需要$ 符号。
  • @Quentin 已链接!

标签: javascript angularjs


【解决方案1】:

你需要注入依赖$window如下

app.controller('MainCtrl', function($scope,$window) {

   $scope.fireOnExpand = function(){
     $window.alert("eee");
  }
});

这是demo

或者,只需使用alert('eee');

$scope.fireOnExpand = function(){
     alert("eee");
  }

这是demo

附言

添加$window 后没有显示警报窗口的主要原因是,该按钮超出了ng-controller 的范围。

这是正确工作的code

【讨论】:

  • 他为什么不能只使用window.alertalert 而不是$window?使他不必添加$window 依赖项? -- 没关系,看到你的编辑了 :)
  • 他可以!而且更简单。我首先在我的评论中写道,只是编辑了我的答案以添加这一点。@Albzi
  • 在 angularjs 中使用 $window 作为依赖注入是有原因的
  • 啊,是的,你做到了,我没想到是同一个人!对不起!
  • @Jamiec,绝对的,角度文档很好point of reference
猜你喜欢
  • 2011-01-27
  • 2019-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
相关资源
最近更新 更多