小编Gra*_*ham的帖子

如何在jquery 1.5中管理ajax请求的队列?

我一直在jquery 1.5中测试新的延迟AJAX函数,并且对它们的简单性和强大功能印象深刻.我有一个更大的问题与排队这些请求的最佳方式有关.

我有两种情况:串行和并行,如果你愿意的话.我想避免同步/异步术语,因为我确实希望所有这些都是异步请求,因此用户可以在等待队列处理时执行其他操作.然后我想在队列完成处理时调用单个函数.

在具有两个请求的"串行模式"中,我希望它们按如下方式处理:

RequestA - > ResponseA - > RequestB - > ResponseB - > EndOfQueue

在具有两个请求的"并行模式"中,我想要这个结果:

RequestA - > RequestB(ResponseA,响应B在准备就绪时处理) - > EndOfQueue

在任何一种情况下,如果任何请求失败,我希望队列停止并将控制传递给失败函数.

我有要求指定动态队列长度所以我不认为我能够将一堆.then()或.when()延迟串起来,因为我不知道它是一百件还是一百件.我正在通过供应商的API在服务器上执行业务逻辑,因此服务器端批处理将很困难,因为我无法控制该代码.

我已经构建了执行"并行"情况的测试用例,并在所有成功完成后调用了when()函数,但这些测试在队列长度上不是动态的,并且不能移植到串行模型.

我可以看到如何创建一个自定义队列对象来处理这个问题,但似乎所有的部分都已经在jquery(?)中为我编写了.我看过了,但还没有找到以这种方式涵盖顺序请求的示例.

有关如何使用jquery队列/延迟功能处理此问题的任何想法?

javascript queue jquery jquery-1.5 jquery-deferred

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

AngularJS - 在对象销毁后删除表行

我有一个AngularJS应用程序,它返回一个json对象列表,我遍历这些对象并将它们放入一个表中.

表格上的每个项目都有一个带有ng-click方法的"删除"按钮:

<td><a ng-click="testButton()" class="btn btn-danger btn-mini">Delete</a></td>
Run Code Online (Sandbox Code Playgroud)

我正在使用ng-resource删除对象 - 这很好.

但是,我希望能够隐藏(或删除)容纳对象的行和删除后的删除按钮 - 最好是使用JQuery.

这是我的破坏方法:

$scope.destroyThing = function() {
        $scope.thing= this.thing;
        $scope.thing.$destroy();
        $(this.thing).closest("tr").hide(); // something like this maybe
    }
Run Code Online (Sandbox Code Playgroud)

该方法很好地破坏了对象 - 它只是不删除行...所以我尝试记录单击按钮时返回的对象:

$scope.testButton = function() {
        console.log(this);
    }
Run Code Online (Sandbox Code Playgroud)

这似乎返回角度Scope对象本身 - 但我找不到一种方法来访问它所涉及的任何DOM元素.

这是一个屏幕截图,显示从testButton函数返回的对象 - 当然,单击按钮会触发该对象:

在此输入图像描述

如何使用JQuery访问与Angular对象相关的DOM元素?

编辑

这是完整的表格行:

<tr ng-repeat="franchise in franchises">
                <td ng-model="franchiseName">{{franchise.franchise_name}}</td>
                <td ng-model="franchiseNumber">{{franchise.franchise_number}}</td>
                <td><a class="btn btn-mini">Edit</a></td>
                <td><a ng-click="destroyFranchise()" class="btn btn-danger btn-mini">Delete</a></td>

            </tr>
Run Code Online (Sandbox Code Playgroud)

jquery angularjs

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

AngularJS:装饰$ http

我有一个简单的控制器,如:

function MyController($scope, $http) {
    ...
    $http.post(url).success(function(data) {
            console.log(data)
         });
}
MyController.$inject = ['$scope', '$http'];
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作,但我有一个问题.出于安全原因,返回的JSON用/***/注释.使用jQuery,我扩展了$ .ajax对象以删除此注释,然后解析结果.我想用AngularJS实现同样的目的,并以某种方式告诉$ http来删除每个响应中的注释.我想为我的整个应用程序执行此操作,并避免键入始终相同.

我有什么想法可以做到这一点?

javascript ajax angularjs

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

将异步加载的数据传递到Webpack中的pug-html-loader

常规设置

我建立一个小的网站的WebPack哈巴狗在此基础上真棒样板: https://github.com/alexnoz/webpack-pug-scss-boilerplate.git

该项目已启动并正在运行,我能够正确渲染哈巴狗文件。

需求

现在,在所有webpack编译发生之前,我需要加载一些数据。我想按照此回答的问题将数据传递给pug-html-loader 。

问题/疑问

我的问题是,我必须异步加载该数据。所以我有一个承诺。如何确保在完成webpack编译之前完成了诺言?

这是我目前无法使用的方法

// in webpack.config.js

var myData = []
loadSomeDataAsync().then(loadedData => myData = loadedData)

{
  loader: 'pug-html-loader',
  options: {
    data: myData    // <==== 
  }
}
Run Code Online (Sandbox Code Playgroud)

pug-html-loader接受options.data如果我把静态数据存在,那么这个数据是可用的哈巴狗模板中。

我知道我的问题似乎是,在Webpack编译发生之前,我的Promise尚未解决。但是如何使Webpack以某种方式“等待” Promise解决呢?

我已经尝试注册webpack事件挂钩。但是没有成功。还有其他建议吗?

javascript node.js webpack pug-loader

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

如何提交新实体以及清除$ anchor.task?

使用AngularJS框架,我如何使用" 提交 "按钮更新当前实体以及清除锚ID - 我基本上想要快速添加条目,但它总是将我的添加表单变成编辑表单.

这是我目前的div不工作,就像它忽略了$anchor.task=null...

请注意," 添加新 "按钮工作正常!

<div>
    Description: <input name="task.desc" ng-required><br>
    <a href="#" ng-action="task.$save(); $anchor.task=null">Save</a>
    <input type="button" value="Add New" ng-action="$anchor.task=null">
</div>
Run Code Online (Sandbox Code Playgroud)

javascript web-applications angularjs

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

AngularJS watch - 无法使用devtools工作区在chrome中设置断点

watch服务是否创建了原始函数的代理?

$scope.$watch('query', doSearch, true);
Run Code Online (Sandbox Code Playgroud)

其中:

doSearch = function(query) {
  alert("breakpoint not working");
  // stuff
}
Run Code Online (Sandbox Code Playgroud)

显示警报,但如果我使用chrome调试器向代码添加断点,它根本不会中断.而非观看的javascript函数中的其他断点正常工作.

更新: 当我不使用chrome dev工具的工作区功能时,断点工作正常.

javascript google-chrome angularjs

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

触发双击事件的两次单击之间的最大延迟是多少?

仍会触发双击事件的两次单击之间的最大延迟是多少?普通 JavaScript、jquery 和 AngularJS 之间的延迟是否会发生变化?

同样,在jquery中fast和slow关键字分别对应什么时间呢?例如,我可以使用$(this).hide("slow");$(this).hide("fast");。有没有办法更改快速和慢速的默认值?

javascript jquery angularjs

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

如何在Angular中创建发布者/订阅者模型?

我一直在使用Angular,并且一直在尝试寻找一种在整个组件树中使用pub / sub机制的方法。

似乎EventEmitter仅发出可以预订到一个级别的事件,但不能更多。同样,它仅将事件向上发射到树上,而现在向下发射。

矮人

相关代码在这里:

class App {
  onAncestor($event) {
     console.log('in ancestor, decendent  clicked',$event);
  } 
}

 ...
class Entities {
   ....
   onParent($event) {
     console.log('in entities parent, child  clicked',$event);
   } 

   onGrandParent($event) {
      console.log('in grand parent, grandschild  clicked',$event);
   } 
Run Code Online (Sandbox Code Playgroud)

}

仅调用onParent,而不调用onGrandparent或onAncestor。同样,它也不会向下发布。

publish-subscribe angular

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

Angular 部署 - 页面刷新 404

我想在 Angular 中将我的应用程序部署到生产服务器,但我遇到了问题。当我只使用角度路由(更改组件,而不是重定向)时,应用程序可以正常工作,但是当我在浏览器中刷新页面时,我得到一个从 IIS 返回的 404 页面(我使用 IIS 作为 Web 服务器)

这是我的角度路由:

const appRoutes: Routes = [
    { path: '', redirectTo: '/home', pathMatch: 'full', canActivate: [AuthGuard] },
    { path: 'home', component: DashboardComponent, canActivate: [AuthGuard] },
    { path: "profile", component: UserProfileComponent, canActivate: [AuthGuard] },
    { path: '400', component: ErrorComponent },
    { path: '401', component: ErrorComponent },
    { path: '403', component: ErrorComponent },
    { path: '404', component: ErrorComponent },
    { path: '500', component: ErrorComponent },
    { path: '503', component: ErrorComponent },
    { …
Run Code Online (Sandbox Code Playgroud)

angular

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

CustomView with XIB - init coder 方法中的无限循环

在我的项目中,我尝试从 XIB 文件创建自定义 UIView。我遵循了一些教程并得到了下面的代码来加载

import UIKit

class StorePricing: UIView {

    override init(frame: CGRect) {

        super.init(frame: frame)
        self.setupView()
    }

    required init?(coder aDecoder: NSCoder) {

        super.init(coder: aDecoder)
        self.setupView()
    }

    private func setupView() {

        let view = self.loadViewFromXib()

        view.frame = self.bounds
        view.autoresizingMask = [.flexibleHeight, .flexibleWidth]

        self.addSubview(view)
    }

    private func loadViewFromXib() -> UIView {

        let bundle = Bundle(for: type(of: self))
        let nib = UINib(nibName: String(describing: type(of: self)), bundle: bundle)
        let view = nib.instantiate(withOwner: self, options: nil).first as! UIView

        return view

    }

}
Run Code Online (Sandbox Code Playgroud)

当我在另一个视图中添加此自定义视图时,我的应用程序崩溃了,我注意到 init …

xib uiview ios swift

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