以上就是给各位分享如何使用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 – 可以在AngulrJS 1.3.0项目中使用angular / di.js吗?
- angularjs – 如何使用Angular 1.5 *组件*和UI Bootstrap模式进行解析
- angularjs – 如何使用angular js动态设置HTML元素的id属性?
- angularjs – 如何使用Angular Js声明一个全局变量?
如何使用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吗?
问题是,我不清楚我是否可以使用它.在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的例子.
我很困惑.任何指针?
一个小例子和一个可能的开始:
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模式进行解析
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); }; }
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属性?
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声明一个全局变量?
常量
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声明一个全局变量?等相关知识,可以在本站进行查询。
本文标签: