单击打开的窗口没有响应

ng-click window open has no response?

本文关键字:响应 窗口 单击      更新时间:2023-09-26
<p ng-click='window.open("{{data.url}}","_self")'>{{data.name}}</p>

这有什么问题吗?我也尝试了点击,但我在控制台中看到错误。

我必须说你必须在控制器中借助这样的服务$window做到这一点:-

var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope,$window) {
 $scope.open=function(data){
    $window.open(data,"self")
  }
});

.HTML:-

<p ng-click='open(data.url)'>{{data.name}}</p>

普伦克

ngClick != onClick

ngClick只能访问范围内的项。若要解决此问题,可以使用控制器操作中的$window服务,或将$window添加到作用域中。

您的表达式无效

您的ngClick包含需要插值的标记。在 ngClick 内部时,您不需要使用 {{}} 语法,并且可以轻松地直接使用 scope 变量。

也许使用 ngHref?

如果您所做的只是打开一个窗口,只需使用锚标记并ngHref

<a ng-href="{{data.url}}">{{data.name}}</a>

我建议一个指令:

<p window-open url="data.url">{{data.name}}</p>
app.directive('windowOpen', function($window) {
  return {
    restrict: 'A',
    link: function (scope, element, attrs) {
      $window.open(attrs.url,"self");
    }
  };
});