小编arn*_*old的帖子

ng-options如何设置第一个选择始终为空白

我在项目中使用angularjs,我在其中使用ng-options进行生成.

最初当页面重新加载并且没有选择选项元素时,html生成如下:

<select size="3" ng-model="item" ng-options="s.name for s in itemlist">
<option value="?" selected="selected"></option>
<option value="0">Item 1</option>
<option value="1">Item 2</option>
<option value="2">Item 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

但是当我选择一个元素(例如项目2)时,第一个空白选择消失了.我知道它正在发生,因为ng-model是由选择值设置的.但我希望首先选择始终为空,以便用户可以重置过滤器.

提前致谢.

javascript options angularjs

52
推荐指数
2
解决办法
5万
查看次数

如何在Angular JS应用程序中处理身份验证

我正在我的角度js应用程序中实现一个auth系统.

我正在计划如下:

  1. 获取用户信息(登录表单中的名称和传递)
  2. 检查用户是否存在
  3. 如果存在服务器响应会话cookie,前端将重定向到某个页面.
  4. 然后用户将执行一些将生成API请求的任务
  5. API请求应包含在步骤3中发送的cookie信息
  6. 服务器检查cookie是否已生成,如果找到cookie,则响应API请求结果.在我的服务中,我正在做类似的事情
    MyApp.service('myAuth', function($http, $q) {
        this.authHeader = null;
        this.checkAuth = function(){
        //do api call and if success sets this.authHeader = response
        }
        this.isAuthenticaed = function(){
            this.authHeader ? return this.authHeder  : return false;
       }

提交登录表单后,我将调用checkAuth并从我的服务器返回我的会话cookie,如何在执行下一个REST调用时添加cookie信息,以及用户在登录后在整个应用程序中导航时我想检查每个时间isAuthenticaed是真还是假,在Angularjs导航到另一个页面时它是否会在第一次调用后设置为true后重置?我的方法是1-6好还是你有什么具体建议吗?顺便说一下,我检查了以前的条目,但那些不是我想知道的.

authentication cookies session angularjs

18
推荐指数
2
解决办法
4万
查看次数

私有方法使用Jasmine进行单元测试

我正在使用茉莉花为角应用编写测试用例.但是许多内部方法在服务中被声明为私有.

例:

App.service('productDisplay', function(){
    var myPrivate = function(){
        //do sth
    }
    this.doOfferCal = function(product, date){
        //call myPrivate
        //do sth too
        return offer;
    }
});
Run Code Online (Sandbox Code Playgroud)

使用jasmine可以直接编写"doOfferCal"的代码测试,但我也想为myPrivate编写单元测试.

我该怎么做?

提前致谢.

unit-testing jasmine angularjs

17
推荐指数
5
解决办法
2万
查看次数

使用shell脚本从单个shell命令运行两个节点服务器

我必须在不同的端口运行两个节点服务器,我想编写一个简单的shell脚本来启动这两个服务器.

我写的如下:

node project/rest.js && node static-server.js
Run Code Online (Sandbox Code Playgroud)

但是当我一次运行命令时,它会启动第一个服务器而不执行第二个服务器.

并且只有第一个服务器侦听请求,第二个静态服务器不启动.在shell中我确实有rest.js的输出.

我以前做过什么来运行两个服务器,我在不同的shell中运行两个命令.

有没有办法可以使用单个shell脚本运行两个服务器?

提前致谢.

unix webserver node.js

13
推荐指数
1
解决办法
1万
查看次数

Django mod_wsgi:处理wsgi脚本时发生异常

我正在部署一个 django 项目并面临这个错误。

我的项目结构如下:

my_project
   my_project
      urls.py
      settings.py
      index.wsgi
      home
         views.py
         models.py
         .........

    requirements.txt
    manage.py
Run Code Online (Sandbox Code Playgroud)

我的 index.wsgi 如下所示:

import os
import sys
import site

# Add the site-packages of the chosen virtualenv to work with
site.addsitedir('~/.virtualenvs/my_project/lib/python2.6/site-packages/')

# Add the app's directory to the PYTHONPATH
sys.path.append('/var/www/uni/my_project')
sys.path.append('/var/www/uni/my_project/home')

os.environ['DJANGO_SETTINGS_MODULE'] = 'my_project.settings'

# Activate your virtual env
activate_env=os.path.expanduser("/home/user/.virtualenvs/my_project/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)

在我的虚拟主机中,配置如下:

    <Directory /var/www/uni/my_project/templates/static>
        Allow from all
     </Directory>  
  WSGIScriptAlias / /var/uni/news/my_project/my_project/index.wsgi 
Run Code Online (Sandbox Code Playgroud)

apache error.log 显示为:

mod_wsgi (pid=27330): Exception occurred processing …
Run Code Online (Sandbox Code Playgroud)

python deployment django mod-wsgi

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

Redis打开文件过多错误

当超过一定数量的用户(大约1200个并发用户)时,我收到“打开文件太多错误”信息。

我使用这个增加了限制,但是却遇到了同样的错误。

然后,我遵循了这一步骤,没有任何变化得到相同的错误。

为了创建连接,我在Django设置中使用了REDIS它,并在需要时使用它。

REDIS = redis.StrictRedis(host='localhost', port=6379, db=0)
Run Code Online (Sandbox Code Playgroud)

我之所以这样做,是因为它在redis邮件列表中建议如下:

一种。创建一个全局redis客户实例,并让您的代码使用它。

这种方法适合连接池吗?或者如何避免打开文件过多的错误?在Django响应中

连接错误(由:[Errno 24]打开的文件太多)“,),)'

谢谢。

python redis redis-py

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

使用下划线js减少

underscorejs如何reduce工作?

它很简单 _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);(结果是6).

但其他可选参数如何工作?在文档中它说:

备注是缩减的初始状态,它的每个连续步骤都应该由迭代器返回.迭代器传递四个参数:备忘录,然后是迭代的值和索引(或键),最后是对整个列表的引用."

但我不明白.我试图reduce用于以下问题,我无法弄清楚:

var input = [{"score": 2, "name": "Jon", "venue": "A"}, {"score": 3, "name": "Jeff", "venue":"A"}, {"score": 4, "name": "Jon", "venue":"B"}, {"score": 4, "name": "Jeff", "venue":"B"}];

var output = [{"score": 6, "name":"Jon", "venue": ["A", "B"]}, {"score": 7, "name":"Jeff", "venue": ["A", "B"]}];
Run Code Online (Sandbox Code Playgroud)

如何使用_reduce输入获得输出?它将如何在内部减少真正有用.

javascript reduce underscore.js

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

Javascript对象组按天,月,年

我正在开发应用程序,我需要对不同的javascript对象进行分组,这些将基于月,日和年.

对于我来说,我在下面这样做

var calculateByDay = function(inputList){
        var outPutList = [];    
        var result = {}
        var item = null, key = null;
        for(i=0; c<inputList.length; i++) {
           item=inputList[c];
           key = Object.keys(item)[0];
           item=item[key];
           if(!result[key]) {
                result[key] = item;
            }
           else {
            result[key] += item;
        }
        for (r in result)
            {
                var docs = {};
                docs["date"] = r;
                docs["amount"] = result[r];
                outPutList.push(docs);
            }

        }
        return outPutList;
    }
Run Code Online (Sandbox Code Playgroud)

如何改进上述代码并将其用于月份和年度计算?我彻底使用了underscore.js并且它有一个groupBy方法.但似乎不符合我的要求.我想按月和年分组,因为

var inputList = [{"2012-12-02T00:00": 2000}, {"2013-01-01T00:00": 1200},{"2013-02-02T00:00": 550}, {"2013-02-02T00:00": 1000}];
Run Code Online (Sandbox Code Playgroud)

输出应该是:

Monthly :
[{"December …
Run Code Online (Sandbox Code Playgroud)

javascript arrays performance group-by underscore.js

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

有条件的数据显示隐藏在Angularjs中

我正在开发一个应用程序,我必须根据用户过滤器生成表格报告.

用户可以过滤结果并使用不同的参数提交新查询.根据复选框和结果列表之一,我必须在表格中显示隐藏列.

我如何以Angular方式实现?

javascript show-hide angularjs

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

Angularjs菜单登录注销加载

我在一个项目中使用Angularjs.

对于登录注销,我正在设置范围变量,如下所示:

$scope.showButton = MyAuthService.isAuthenticated();
Run Code Online (Sandbox Code Playgroud)

在标记中它就像

<li ng-show="showLogout"><a href="#/logout" ng-click="logOut()">Logout</a></li>
Run Code Online (Sandbox Code Playgroud)

当我注销时,它会重定向到登录页面,但注销菜单不会消失.

也试过这样:

$scope.showButton = MyAuthService.isAuthenticated();
Run Code Online (Sandbox Code Playgroud)

在标记中:

<li ng-class=" showLogout ? 'showLogout' : 'hideLogOut' "><a href="#/logout" ng-click="logOut()">Logout</a></li> 
Run Code Online (Sandbox Code Playgroud)

似乎范围更改没有反映在我看来,但当我重新加载页面"注销菜单"按预期消失.

我也尝试过如下指令:

MyApp.directive('logoutbutton', function(MyAuthService) {
    return {
        restrict: 'A',
        link: function(scope, element, attrs, controller) {
            attrs.$observe('logoutbutton', function() {
                updateCSS();
            });

            function updateCSS() {
                if (MyAuthService.isAuthorized()) {
                    element.css('display', 'inline');
                } else {
                    element.css('display', 'none');
                }
            }


        }
    }
});
Run Code Online (Sandbox Code Playgroud)

也没有运气.

如何在注销成功时隐藏它,并且在成功登录后如何显示"注销按钮"?

authentication login angularjs angularjs-directive

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

AngularJS路由配置

我是angularjs的新手,只是想用它构建一个CRUD应用程序.

我的代码就像这样http://jsfiddle.net/fpnna/1/

我正在使用apache作为网络服务器

$locationProvider.html5mode(true);
Run Code Online (Sandbox Code Playgroud)

然后得到

uncaught TypeError: Object #<Ic> has no method 'html5mode' from testApp 
Run Code Online (Sandbox Code Playgroud)

当我点击"添加新"时,路径更改为"/ new"但收到错误

404 The requested URL /new was not found on this server.
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么.

我通过官方手册,无法弄明白.

提前致谢.

javascript url-routing angularjs

0
推荐指数
1
解决办法
4833
查看次数