GVKun编程网logo

如何使用angularjs在关闭窗口时触发函数(angular关闭当前页面)

13

以上就是给各位分享如何使用angularjs在关闭窗口时触发函数,其中也会对angular关闭当前页面进行解释,同时本文还将给你拓展angularjs–可以在AngulrJS1.3.0项目中使用ang

以上就是给各位分享如何使用angularjs在关闭窗口时触发函数,其中也会对angular关闭当前页面进行解释,同时本文还将给你拓展angularjs – 可以在AngulrJS 1.3.0项目中使用angular / di.js吗?、angularjs – 如何使用Angular 1.5 *组件*和UI Bootstrap模式进行解析、angularjs – 如何使用angular js动态设置HTML元素的id属性?、angularjs – 如何使用Angular Js声明一个全局变量?等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何使用angularjs在关闭窗口时触发函数(angular关闭当前页面)

如何使用angularjs在关闭窗口时触发函数(angular关闭当前页面)

当用户关闭应用程序时,我需要执行一个函数,但是需要考虑以下几点:

  • 我需要执行一个功能service,然后…
  • …超出范围的基于纯JavaScript的函数在这里不太有用
  • 当我使用路由时,作用域onLocationChangeSuccess绑定也无济于事

因此此解决方案将无法正常工作:https :
//stackoverflow.com/a/18355715/773595

因为这会在每次位置更改时触发,但是我只需要在关闭选项卡/窗口时触发一次。

答案1

小编典典

您可以在控制器/指令中注册onbeforeunload,然后就可以访问作用域。如果需要服务,我会将其注册到angular.run生命周期中。

angular.module(''app'', [])  .controller(''exitController'', function($scope, $window) {    $scope.onExit = function() {      return (''bye bye'');    };   $window.onbeforeunload =  $scope.onExit;  });<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script><div ng-app="app" ng-controller="exitController">  <a href="http://www.disney.com">Leave page</a></div>

angularjs – 可以在AngulrJS 1.3.0项目中使用angular / di.js吗?

angularjs – 可以在AngulrJS 1.3.0项目中使用angular / di.js吗?

Volta在ng-conf上谈到的新的依赖注入,包含在这里: https://github.com/angular/di.js正是我正在为我的AngularJS 1.3.0项目寻找的.

问题是,我不清楚我是否可以使用它.在github项目示例中,似乎没有使用AngularJS v1的例子.

我在Backbone项目中发现了一个例子:http://teropa.info/blog/2014/03/18/using-angular-2-0-dependency-injection-in-a-backbone-app.html,我发现在AngularJS v1项目中使用ES6的一个例子:https://github.com/mvolkmann/todo-es6/,但是我在Angular v1项目中找不到使用新的DI的例子.

我很困惑.任何指针?

也许不要使用di.js,而是将类似样式的代码转换成有效的角度1.X语法(在构建步骤中)

一个小例子和一个可能的开始:

var falafel = require('falafel');
var traceur = require('traceur');

var src =  
  '@Inject(MyService,MyOtherService)' +
  'class Thing{' +
  '  constructor(service,otherservice){' +
  '  }' +
  '}';

src = traceur.compile(src,{ annotations: true });
//console.log(src);

function tryGetPath(obj,path) {
  path.split('.').forEach(function(key) {
    obj = obj && obj[key];
  });
  return obj;
}

var output = falafel(src,function(node) {
  //find `Object.defineProperty for 'annotations'`
  if (node.type === 'CallExpression' && tryGetPath(node,'arguments.1.value') === 'annotations') {
    var injectable = tryGetPath(node,'arguments.0.name');
    var $inject = (tryGetPath(node,'arguments.2.properties.0.value.body.body.0.argument.elements') || [])
                       .filter(function(a){return a.callee.name === 'Inject'})  
                       .reduce(function(p,c){ p.push.apply(p,c.arguments); return p;},[])
                       .map(function(a){return "'"+a.name+"'";});
    node.update(injectable + '.$inject = [' + $inject.toString() + '];');
  }
});

console.log(output);

也许您甚至可以使用某些属性(例如@NgController等)将其注册到您的模块上作为控制器.

angularjs – 如何使用Angular 1.5 *组件*和UI Bootstrap模式进行解析

angularjs – 如何使用Angular 1.5 *组件*和UI Bootstrap模式进行解析

我正在尝试使用resolve将数据传递到 ubi modal,这是一个Angular 1.5组件.我知道这是可能的,因为它表明uib模式文档中的组件支持resolve.

component (Type: string,Example: myComponent) – A string reference to
the component to be rendered that is registered with Angular’s
compiler. If using a directive,the directive must have restrict: ‘E’
and a template or templateUrl set.

It supports these bindings:

(…)

resolve – An object of the modal resolve values. See UI Router
resolves for details.

我发现的所有示例都在open方法中声明了templateurl / controller.然后将在resolve中声明的项目注入控制器.我将一个Angular 1.5组件传递给模态(不是templateurl / controller),当我尝试从resolve中注入项目时,我遇到了一个可怕的“unkNow provider”错误.

这是我的代码.我想通过一个网址.

调用模型的组件控制器

ParentController.$inject = ['$uibModal'];

function ParentController $uibModal) {
  var $ctrl = this;

  $ctrl.openComponentModal = function(url) {
    var modalinstance = $uibModal.open({
      animation: false,component: "ImageModalComponent",resolve: {
        url: function() {
          return url;
        }
      }
    });
  };
}

作为模态的组件中的控制器

ImageModalController.$inject = ['url'];

function ImageModalController(url) {
  var $ctrl = this;

  $ctrl.$onInit = function() {
    console.log(url);
  };

}
对于组件,需要将resolve添加到绑定中,然后在隔离范围上提供.换句话说,添加解决方案:’<'在声明组件时. 模态组件
var template = require('./image_modal.component.html');
var ImageModalController = require('./image_modal.controller');

module.exports = {
  template: template,bindings: {
    close: '&',resolve: ‘<‘
  },controller: ImageModalController
};

调用模型的组件控制器

ParentController.$inject = ['$uibModal'];
function ParentController $uibModal){
  var $ctrl = this;

     $ctrl.openComponentModal = function (urlFromClickEvent) {
        var modalinstance = $uibModal.open({
          animation: false,resolve: {
            url: function() {
              return url;
            }
          }
        });
      };
}

作为模态的组件的控制器

ImageModalController.$inject = [];
function ImageModalController() {
  var $ctrl = this;
  
  $ctrl.$onInit = function () {
    console.log($ctrl.resolve.url);
  };
}

angularjs – 如何使用angular js动态设置HTML元素的id属性?

angularjs – 如何使用angular js动态设置HTML元素的id属性?

提供了一个类型为div的HTML元素,如何设置其id属性的值,它是一个scope变量和一个字符串的连接?
ngAttr指令可以完全有帮助,在官方文档中介绍

https://docs.angularjs.org/guide/directive#-ngattr-attribute-bindings
更新:文档移至:https://docs.angularjs.org/guide/interpolation#-ngattr-for-binding-to-arbitrary-attributes

例如,要设置div元素的id属性值,以使其包含索引,视图片段可能包含

<div ng-attr-id="{{ 'object-' + myScopeObject.index }}"></div>

其将被内插到

<div id="object-1"></div>

angularjs – 如何使用Angular Js声明一个全局变量?

angularjs – 如何使用Angular Js声明一个全局变量?

我想要一个可以在所有控制器中使用但不想为它创建一个服务的变量.它可能在角度js?
您可以使用 constants or values.

常量

var app = angular.module('myApp',[]);
app.constant('appName','Application Name');

app.controller('TestCtrl',['appName',function TestCtrl(appName) {
    console.log(appName);
}]);

var app = angular.module('myApp',[]);

app.value('usersOnline',0);
app.controller('TestCtrl',['usersOnline',function TestCtrl(usersOnline) {
    console.log(usersOnline);
    usersOnline = 15;
    console.log(usersOnline);
}]);

http://ilikekillnerds.com/2014/11/constants-values-global-variables-in-angularjs-the-right-way/

今天关于如何使用angularjs在关闭窗口时触发函数angular关闭当前页面的分享就到这里,希望大家有所收获,若想了解更多关于angularjs – 可以在AngulrJS 1.3.0项目中使用angular / di.js吗?、angularjs – 如何使用Angular 1.5 *组件*和UI Bootstrap模式进行解析、angularjs – 如何使用angular js动态设置HTML元素的id属性?、angularjs – 如何使用Angular Js声明一个全局变量?等相关知识,可以在本站进行查询。

本文标签: