窗口大小调整信息在角
window resizing info in angular
我只是发表了这篇文章,认为它可能对像我这样的人有帮助。它展示了如何将普通javascript传递到角作用域。在这种情况下,作用域获取窗口的内部大小信息。
http://jsfiddle.net/spacm/HeMZP/
对于个人使用,我将传递这些信息给angular作用域:
- 宽度,heigth
- 方向/方向变化 <
- iframe检测/gh><
- 操作系统检测/gh>
使用navigator.platform
变量
function isInIFrame(){
return window.location !== window.parent.location;
}
function updateMediaInfoWH() {
if((typeof(mediaInfo.inIFrame)!='undefined') && (!mediaInfo.inIFrame)) {
mediaInfo.width = innerWidth;
mediaInfo.height = innerHeight;
updateMediaInfoOrientation();
}
tellAngular();
}
function tellAngular() {
console.log("tellAngular");
var domElt = document.getElementById('mainContainer');
scope = angular.element(domElt).scope();
console.log(scope);
scope.$apply(function(){
scope.mediaInfo = mediaInfo;
scope.info = mediaInfo.width;
});
}
欢迎评论
我没有看到需要回答的问题,所以我假设你的问题是在寻找对你的想法的输入。
使用Angular可能会和你平时的工作方式大不相同,主要是因为它们完全完全地使用了依赖注入。
你不应该"告诉"Angular任何东西,你应该能够通过注入的依赖项(Angular服务)访问所有这些信息。
使用你给我看的,它看起来像这样:
my.MediaInfo = function($window) {
this.window_ = $window;
this.inIframe = $window.self !== $window.top;
if(!this.inIFrame) {
this.width = $window.innerWidth;
this.height = $window.innerHeight;
} else {
this.width = this.height = ...;
}
}
my.angular.controller = function($scope, mediaInfo) {
// {width: X, height: Y, inIframe: false}
$scope.mediaInfo = mediaInfo;
}
那么你的Angular模块应该是这样的:
angular.module('module', [])
.service('mediaInfo', my.MediaInfo)
.controller('mainCtrl', my.angular.controller);
希望这是一个很好的示范,说明你应该如何将数据导入Angular。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- ExtJS——在展开/折叠时调整面板高度
- 定义完全独立的样式信息
- 使用html2canvas获取基本信息
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 从信息框调用弹出图像库
- 如何在不传递此信息的情况下查找被调用的元素
- Chrome应用程序调整窗口大小保持纵横比
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- 如何自动调整标签的高度以适应内容
- 导航栏没有调整到浏览器屏幕的大小
- 调整屏幕大小后不显示子菜单
- 如何调整信息窗口的大小并点击按钮?+更改信息窗口的内容
- 如何调整信息窗口的大小
- getBoundingClientRect未返回大小调整信息iOS8
- 可以't调整嵌入地图信息窗口的谷歌电子表格的大小
- 在api中调整google earth版权信息大小
- 窗口大小调整信息在角