javascript - 在指令中使用 window.open

标签 javascript jquery angularjs window

我正在尝试通过 ng-click 在我的 Angular 应用程序中触发 $window.open(url, windowName, attributes);

由于 ng-click 链接到我模板上的按钮,我已经定义了一个指令并将 window.open 包装在一个函数触发器中:

myApp.directive('myModal', ['$log', function ($log, $window) {
    return {
        restrict: 'E',

        templateUrl: 'modal-tpl',

        replace: true,

        transclude: true,

        link: function (scope, window) {
            scope.openWindow = function(){
                window.open('https://myLink', 'Google', 'width=500,height=400');
               //some other code
            };
        }
    };
}]);

在我的 HTML 中:

   <button type="submit" class="cta main right ease"ng-click="openWindow()">open window</button>

出于某种原因,当我单击按钮时窗口没有打开。我的代码有什么问题?

最佳答案

您不能使用链接注入(inject)窗口,您可以简单地使用原生 JavaScript window 对象

示例:

js:

var app=angular.module('App', []);
app.directive('myModal', ['$log', function ($log) {
    return {
        restrict: 'EA',

        link: function (scope,element) {
            scope.openWindow = function(){
                window.open('https://myLink', 'Google', 'width=500,height=400');
               //some other code
            };
        }
    };
}]);

html:

<div ng-app="App"  >
 <button type="submit" my-Modal="" class="cta main right ease"ng-click="openWindow()">open window</button>
</div>

实例:http://jsfiddle.net/choroshin/crt45/1/

关于javascript - 在指令中使用 window.open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22592244/

相关文章:

javascript - 用图像图案绘制 View

javascript - jQuery 显示/隐藏列表中的每个元素

javascript - JQUERY AJAX $_POST 为空

javascript - 在 JavaScript 中设置 data-ng-model

javascript - 在 View renedring 上处理 Angular 函数

javascript - AngularJS 在 ng-click 上调用自定义指令(A 表单)

javascript - 在 ReactJS 中的 Spotify API 上为 PKCE 身份验证创建代码验证器和质询

javascript - 关闭模式并在主页上显示消息

javascript - 在 IE7 中使用 jquery slideToggle 时内容消失

javascript - 如何将商品添加到购物车而不添加按钮只需单击图片