小编mpm*_*mpm的帖子

如何在AngularJS中取消$ http请求?

给出AngularJS中的Ajax请求

$http.get("/backend/").success(callback);
Run Code Online (Sandbox Code Playgroud)

如果启动另一个请求(相同的后端,例如不同的参数),取消该请求的最有效方法是什么.

promise cancellation angularjs angular-http angular-promise

184
推荐指数
5
解决办法
11万
查看次数

angularjs中的密码检查指令

我正在写一个密码验证指令:

 Directives.directive("passwordVerify",function(){
    return {
        require:"ngModel",
        link: function(scope,element,attrs,ctrl){
            ctrl.$parsers.unshift(function(viewValue){
                var origin = scope.$eval(attrs["passwordVerify"]);
                if(origin!==viewValue){
                    ctrl.$setValidity("passwordVerify",false);
                    return undefined;
                }else{
                    ctrl.$setValidity("passwordVerify",true);
                    return viewValue;
                }
            });

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

HTML:

<input data-ng-model='user.password' type="password" name='password' placeholder='password' required>
<input data-ng-model='user.password_verify' type="password" name='confirm_password' placeholder='confirm password' required data-password-verify="user.password">
Run Code Online (Sandbox Code Playgroud)

给定表单中的2个密码字段,如果两个密码值相等,则受该指令影响的字段有效.问题是它以一种方式工作(即当我在密码验证字段中键入密码时).但是,更新原始密码字段时,密码验证不会生效.

知道如何进行"双向绑定验证"吗?

javascript angularjs

76
推荐指数
9
解决办法
11万
查看次数

$ httpProvider.responseInterceptors的替代方案

什么是$ httpProvider.responseInterceptors的替代品,因为它在AngularJS V1.3中已停止使用?

我使用Angular JS 1.2的拦截器现在不能使用1.3版本

var angularErrorHandling = angular.module('xx-http-error-handling', []);
angularErrorHandling.config(function ($provide, $httpProvider, $compileProvider) {
    var elementsList = $();

     push function to the responseInterceptors which will intercept 
     the http responses of the whole application
    $httpProvider.responseInterceptors.push(function ($timeout, $q) {
        return function (promise) {
            return promise.then(function (successResponse) {                
                // if there is a successful response on POST, UPDATE or DELETE we display
                // a success message with green background
                if (successResponse.config.method.toUpperCase() == 'GET') {
                    var length = successResponse.data.length;                    
                    if (length == …
Run Code Online (Sandbox Code Playgroud)

javascript interceptor angularjs

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

在FireFox中拖放事件的拖放指令,没有e.clientX或e.clientY

我已经使用Angular中的指令实现了一个简单的拖放系统.它在Chrome中运行良好,但Firefox不会在拖动事件上公开event.clientX,event.clientY属性(他们只是拒绝修复它).所以我正在寻找一个在拖动事件上公开这些属性的好方法:

对于拖动事件的视觉反馈需要x,y坐标.

代码在这里:

http://plnkr.co/edit/ApeyQ4FcdsA8Ez18Roi0?p=preview

在Chrome和Firefox中查看问题.

在Chrome中,拖动文件夹中的项目,您将在鼠标后显示与视觉反馈相同的项目,而不是在Firefox中(因为Firefox在拖动事件中不支持e.clientX和e.clientY).

问题出在这里:(第45行)

.on('drag', function(e) {
    if (e.originalEvent.clientX) {
        el.css({
           'top': e.originalEvent.clientY + 10,
           'left': e.originalEvent.clientX + 10
        });
    } else {
        el.css('display', 'none');
    }
});
Run Code Online (Sandbox Code Playgroud)

那么如何在Firefox中的拖动事件中获取鼠标在屏幕上的位置(角度方式,我的意思是指令,没有全局变量或其他)?

在此输入图像描述

javascript firefox drag-and-drop angularjs

9
推荐指数
2
解决办法
6058
查看次数

Backbone.marionnette - 重新绑定事件与创建新视图

我有一个Layout有几个标签.单击其中一个选项卡将show在页面内容中显示相应的复合视图region.在不同选项卡之间来回导航后,我注意到复合视图已丢失其原始绑定,以便在集合重置和模型更改时呈现.

有没有办法在_initialEvents第二次显示视图时重新绑定复合视图中使用的事件,还是应该每次创建一个新的复合视图show

目前,我在创造我的所有观点initialize我的Layout,然后用show与被点击分页时的观点.

initialize: function(){
    _.bindAll(this);

    //     Tabs
    this.places_page   = new Places_Layout();
},

show_places_page: function(){

    this.content.show(this.places_page);
    this.places_page.delegateEvents();
},
Run Code Online (Sandbox Code Playgroud)

backbone.js backbone-events marionette

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

我的变压器不起作用(从模型数据到表格数据)

我正在构建一个silex应用程序(源代码在这里)
App\Form\DataTransformer我有一个MetadataTransformer类.
但该transform方法不起作用(反向转换).
它适用于a App\Form\Metadata AbstractType,它是一个集合的一部分App\Form\ArticleForm AbstractType.
最后一个表单是在我的编辑方法中调用的App\Controller\Admin\ArticleAdminController

数据转换器应该映射这样的数据

{"key":"value"}
Run Code Online (Sandbox Code Playgroud)

进入"表格数据",如:

[{"name":"key","value":"key"}] 
Run Code Online (Sandbox Code Playgroud)

因此它可以显示为集合.

Metadata.php

class MetaData extends AbstractType
{
    protected $span4 = "span4";
    protected $span3 = "span3";

    public function buildForm(FormBuilderInterface $builder,array $options)
    {
        $builder
            ->add('name', 'text', array(
                "label" => ' ',
                "attr"  => array(
                    "class"       => $this->span3,
                    "placeholder" => "name"
                )
            ))
            ->add('value', 'text', array(
                'label' => ' ',
                'attr'  => array(
                    "class"       => $this->span4,
                    'placeholder' => 'value'
                )
            )) …
Run Code Online (Sandbox Code Playgroud)

symfony-forms symfony silex

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

angularjs指令教程

我是angularjs的新手,我想了解指令的作用,但是我找不到一个复杂的不同示例的教程,如果我可以在指令中移动以下代码,那我就很好.

    // hide the url bar 
    var page = document.getElementById('page'),
    ua = navigator.userAgent,
    iphone = ~ua.indexOf('iPhone') || ~ua.indexOf('iPod'),
    ipad = ~ua.indexOf('iPad'),
    ios = iphone || ipad,
    // Detect if this is running as a fullscreen app from the homescreen
    fullscreen = window.navigator.standalone,
    android = ~ua.indexOf('Android'),
    lastWidth = 0;

    if (android) {
        // Android's browser adds the scroll position to the innerHeight.
        // Thus, once we are scrolled, the page height value needs to be corrected in case the     page is …
Run Code Online (Sandbox Code Playgroud)

angularjs

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

nodejs中的异步和递归

expressmongoose开始,我经常需要对集合进行一些批处理操作.然而,它通常涉及回调,这对于如何在nodejs中编码并发而言是一种痛苦.所以基本上

//given a collection C 
var i = 0;
var doRecursive = function(i){
    if(i<C.length){
      C[i].callAsync(err,result){
        i=+1;
        return doRecursive(i);
       }
    }else{
      return done();
    }
}
doRecursive(i);
Run Code Online (Sandbox Code Playgroud)

现在我不记得在获得带节点的堆栈流之前最大堆栈是什么,但我想有10 000个元素,它不会这样做.我想知道是否还有其他方法可以解决这个问题,如果是的话,它们是什么?谢谢

javascript mongoose mongodb node.js express

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

javascript将对象传递给函数

var o = {};
(function(x){x=null})(o);       //o is NOT null after this statement
(function(x){x.foo = "foo"; x.bar = "bar";})(o)   //o has properties foo and bar after this statement
Run Code Online (Sandbox Code Playgroud)

将对象o传递给函数时会发生什么?第一个功能使得它似乎没有通过; 第二个函数使它看起来像是通过了

javascript function object

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

开发javascript浏览器应用程序的最佳节点包是什么?

我开始使用nodejs这是一个很棒的工具.我用它来开发我的前端,我已经使用coffee-script自动编译为javascript,以及允许我编写单元测试的jasmine包.我正在寻找很酷的软件包来加速我的javascript/css developppement.

例如,当我完成开发我的应用程序时,我想要一个缩小所有javascript文件的包,然后把它放在一个文件中,有点像闭包编译器.我想我必须写一些清单文件,然后一个nodejs utiliy将采取该清单中列出的所有文件并"编译"我的应用程序.

那么nodejs包可以做什么呢?

我还应该使用javascript/coffeescript进行快速前端开发吗?谢谢.

javascript node.js coffeescript jasmine

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