小编Cur*_*urt的帖子

在AngularJS中,如何检测用户何时离开模板/页面?

我正在使用Javascript命令:setInterval.我喜欢在用户离开页面时停止它.

这段代码似乎运行良好:http: //jsfiddle.net/PQz5k/

它可以检测用户何时离开页面.当用户单击链接以转到其他HTML页面或URL,或者用户重新加载页面时,它会执行Javascript代码.

但是,当我从一个AngularJS模板转到另一个模板时,它不起作用.举个例子,如果我在template1.html,当用户离开template1.html转到template2.html时,我希望Javascript代码在Controller1.js中执行某些操作.AngularJS中下面这段代码的等价物是什么?:

$(window).on('beforeunload', function() {
    return 'Your own message goes here...';
});?
Run Code Online (Sandbox Code Playgroud)

javascript setinterval angularjs

54
推荐指数
3
解决办法
7万
查看次数

window.onload在AngularJS中不起作用

这个代码在一个简单的HTML文件中工作:

<script>
  function load() {
    alert("load event detected!");
  }
  window.onload = load;
</script>
Run Code Online (Sandbox Code Playgroud)

但是,如果我将它放入AngularJS Web应用程序的index.html文件中,则不会.有谁知道为什么不呢?

window onload angularjs

15
推荐指数
3
解决办法
5万
查看次数

Font Awesome无法在Android浏览器上运行

我正在使用Font Awesome,它是专为Twitter Bootsrap设计的.

Galaxy S(型号#GT-I9000M)手机上的Android(2.1版)浏览器不显示图标.它将它们显示为垂直矩形,类似于您在此处看到的内容:

在此输入图像描述

有人知道解决这个问题吗?

browser fonts icons android font-awesome

8
推荐指数
1
解决办法
9451
查看次数

如何将AngularJS变量传递给Javascript?

我正在构建一个带模态窗口的AngularJS Web应用程序.在模态窗口中,我可以显示一个JQuery Flot实时图表,类似于:http://people.iola.dk/olau/flot/examples/realtime.html  

我的网站显示多个用户,但根据所选内容,用户数可能会有所不同.我想为每个用户显示一个图表.这是我难倒的地方.

我从http://people.iola.dk/olau/flot/examples/realtime.html复制了Javascript代码并将其放在/js/flot/flot.user.js中,并进行了以下更改:

//$(function () {
function flotChart(user_ID) {
...
//var plot = $.plot($("#placeholder"), [ getRandomData() ], options);
var plot = $.plot($("#chart_" + user_ID), [ getRandomData() ], options);
…
Run Code Online (Sandbox Code Playgroud)

我的AngularJS网络应用程序有以下代码:

在index.app.html中:

<!DOCTYPE HTML>
<html ng-app="app">
...
<body ng-controller="AppCtrl">
...
<div class="container">
  <div ng-view></div>
</div>
...
Run Code Online (Sandbox Code Playgroud)

在模板(index.html)中:

...
<!--  Modal window -->
<script src="/js/flot/flot.user.js"></script>
<table class="table table-condensed">
  <tr ng-repeat="user in users">
    <td ng-click="href('#/profile/'+user.user_ID)" data-dismiss="modal">{{user.user_name}}</td>
    <td>
      <script type="text/javascript">
        flotChart({{user.user_ID}});
      </script>
      <div id="chart_{{user.user_ID}}" style="width:100%;height:150px;"></div>
    </td>
...
Run Code Online (Sandbox Code Playgroud)

我需要将{{user.user_ID}}传递给flotChart(user_ID),但如上所示,flotChart({{user.user_ID}})不起作用. …

javascript bind flot angularjs

5
推荐指数
1
解决办法
9448
查看次数

如何在 Twitter Bootstrap AngularJS 模态窗口中以 100% 宽度显示 Flot 图表

我正在使用 Twitter Bootstrap AngularJS 来构建一个 Web 应用程序。在模态窗口中,我喜欢展示一个 JQuery Flot 实时图表,类似于:http ://people.iola.dk/olau/flot/examples/realtime.html  

我从http://people.iola.dk/olau/flot/examples/realtime.html复制了代码 ,并将其放入我的服务器上一个名为 flot2.html 的文件中。有用。我只指定高度,它会自动将宽度设置为 100%

但是,当我将代码放入我的模板 (index.html) 文件和模式窗口中时,有两个问题。除非我指定宽度,否则它会在下面给我这个错误:

Invalid dimensions for plot, width = 0, height = 300
Run Code Online (Sandbox Code Playgroud)

我设置了 width=100%,但看起来它只显示了 100px。

此外,Y 轴的标签位于网格左边缘/边界的上方,而不是它左侧的几个像素。

这是代码:

在 index.app.html 中:

<!DOCTYPE HTML>
<html ng-app="app">
...
<body ng-controller="AppCtrl">
...
<div class="container">
  <div ng-view></div>
</div>
...
<script src="/js/jquery.min.js">
Run Code Online (Sandbox Code Playgroud)

在模板 (index.html) 中:

...
<!--  Modal window -->
<div class="modal fade hide" id="chartModal">
...
<style>
  display:block!important;
</style>
<script src="/js/jquery.flot.min.js"></script>
<script src="/js/flot/flot.demo.js"></script>  <!-- I …
Run Code Online (Sandbox Code Playgroud)

modal-dialog flot width twitter-bootstrap angularjs

4
推荐指数
1
解决办法
9423
查看次数

对于Javascript中的循环仅从最后一次迭代输出值

我有这个Javascript代码,按预期工作:

<div class="test"></div>

<script>
setTimeout(function(){$(".test").append("test1")},1000);
setTimeout(function(){$(".test").append("test2")},2000);
</script>
<script src="js/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

它首先显示"test1",然后在一秒后显示"test2",因此:"test1test2",这就是我想要的.

当我尝试在FOR循环中执行此操作时,如下所示:

var timeInterval = 1000;
for (var i = 0, l = 2; i < l; i++ ) {
    setTimeout(function(){$(".test").append("test" + i)},timeInterval);
    timeInterval += 1000;
}
Run Code Online (Sandbox Code Playgroud)

然后我先得到"test2",然后在第二次得到"test2",这样:"test2test2",这不是我想要的.

事实上,如果l = 3,那么我得到"test3test3test3"而不是"test1test2test3".有人知道如何解决这个问题吗?

javascript jquery for-loop settimeout

4
推荐指数
1
解决办法
5022
查看次数

AngularJS模板运行两次

我正在使用Twitter Bootstrap开发AngularJS Web应用程序.模板和控制器运行两次.我不知道他们为什么这样做.

下面是index.html文件中的一些代码:

<html data-ng-app="app" ng-controller="AppCtrl">    
<div class="container ng-view" data-ng-view></div>

...

<script>
(function (angular) {
"use strict"; // jshint ;_;
// http://coenraets.org/blog/2012/02/sample-application-with-angular-js/
angular.module('app', ['filters', 'angular', 'currency'])
.config(function($routeProvider) {
    var _view_ = 'view/';
    $routeProvider.
        when('/app',                {templateUrl:_view_+'app/index.html',       }).
        when('/account/settings',   {templateUrl:_view_+'app/settings.html',    }).
        when('/profile/:profile_ID', {templateUrl:_view_+'app/profile.html',    controller:ProfilePageCtrl}).
        when('/discuss',            {templateUrl:_view_+'discuss/discuss.html',     controller:DiscussCtrl}).
        when('/',                   {templateUrl:_view_+'page/home.html'        }).
        when('/:page',              {templateUrl:_view_+'page.html',            controller:PageCtrl}).
        otherwise({redirectTo:'/'});
})
...
Run Code Online (Sandbox Code Playgroud)

有人可以提供建议吗?模板和控制器应该运行两次吗?

2012-12-04更新:我发现模板运行了两次,无论是否有控制器.如果模板有控制器,则控制器也会运行两次.

controller twitter-bootstrap angularjs

2
推荐指数
1
解决办法
2632
查看次数