小编And*_*loi的帖子

如果通过ajax填充范围,则AngularJS指令模板不会更新

我尽力将这个问题作为精确的标题.
我对AngularJS很陌生,但我对这个问题很着迷.我试图制作一个jsfiddle来更好地说明我的问题,但它依赖于太多单独的文件.唉它还没有在线,所以请耐心等待.:)

所以基本上我有一个我建立的应用程序yeoman init angular,我app.js看起来像这样:

"use strict"

var myApp = angular.module("myApp", [])
.config(function($routeProvider) {
    $routeProvider
    .when("/lineup", {
        templateUrl: "views/lineup.html",
        controller: "LineupCtrl"
    })
    //other routes
    .otherwise({
        redirectTo: "/"
    });
})
.directive("playerlist", function() {
    return {
        restrict: "E",
        transclude: false,
        scope : {},
        templateUrl : "views/directives/playerlist.html",
        controller : function($scope) {
            $.get("/players")
            .success(function(players) {
                $scope.players = players;
            });
        },
        replace : true
    }
});
Run Code Online (Sandbox Code Playgroud)

index.html拿起app.js并有一个引用的锚#/lineup,它有效地打开views/lineup.html; 为了简化,我们假设后者只包含(自定义)<playerlist></playerlist>标签.
在指令的控制器功能中,我确信它$.get("/players")可以正常工作,因为我可以从chrome的网络选项卡中看到响应正确地作为一组玩家进行. …

javascript angularjs

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

导入多个AngularJS模块的工厂

我想知道是否有办法将我在AngularJS模块中定义的所有工厂导入控制器而无需全部列出.假设我有一个名为contains的文件foo.js:

angular.module("Foo", [])
.factory("Bar1", function() {...})
.factory("Bar2", function() {...})
.factory("Bar3", function() {...})
.factory("Bar4", function() {...});
Run Code Online (Sandbox Code Playgroud)

现在,在我的controller.js档案中,我有:

angular.module("myApp.controllers", ["Foo"]).
controller("MainCtrl", ["Bar1", "Bar2", "Bar3", "Bar4", function(bar1, bar2, bar3, bar4) {
    //do stuff with the various bars
}]);
Run Code Online (Sandbox Code Playgroud)

我只是想知道控制器是否有任何优雅的方式,因为它已经导入模块Foo,看到它的所有工厂(或提供者,或服务,或指令).

javascript angularjs

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

Nodejs:wget,解压缩并转换为js而无需写入文件

好吧标题说明了一切,我正在尝试编写一个利用库的脚本(在nodejs/express服务器端应用程序中运行)request,unzipxml2js执行一个包含从给定URL获取zip文件的任务,其内容是一个xml文件,我需要解析为javascript对象进行进一步处理.

到目前为止,我已经设法提出:

var express = require("express");
var app = express();
/* some init code omitted */
var request = require("request");
var unzip = require("unzip");
var xml2js = require("xml2js");
var parser = new xml2js.Parser();

app.get("/import", function(req, res) {
    request("http://path.to/file.zip")
        .pipe(unzip.Parse())
        .on("entry", function(entry) {
            //This is what I'm trying to avoid, which doesn't even work
            entry.pipe(fs.createWriteStream(entry.path));
            fs.readFile(entry.path, function(err, data) {
                if(err) {
                    return res.status(500).send(err);
                }
                parser.parseString(data, function(err, obj) {
                    console.log(util.inspect(obj));
                    /* further processing of obj */ …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express

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

在AngularJS模块中包装javascript类并注入角度服务的正确方法

在我正在开发的AngularJS模块中,我有一个Canvas类定义为:

angular.module("myModule", [])
.factory("Canvas", function() {return Canvas;});

var Canvas = function(element, options) {
    this.width = options.width || 300;
    this.height = options.height || 150;
    this.HTMLCanvas = $(element).get(0);
    this.HTMLCanvas.width = canvas.width;
    this.HTMLCanvas.height = canvas.height;
    this.objects = [];
    //Initialize canvas
    this.init();
}
Canvas.prototype.init = function() {/*...*/};
Canvas.prototype.otherMethod = function() {/*...*/};
Run Code Online (Sandbox Code Playgroud)

现在,Canvas该类从未在模块内部实例化,而是从AngularJS控制器实例化,如下所示:

angular.module("myApp.controllers", ["myModule"])
.controller("MainCtrl", ["Canvas", function(Canvas) {
    var canvas = new Canvas("#canvas", {/*options object*/});
    //...
}]);
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都像一个魅力.但后来我意识到我需要$q在canvas对象中使用该服务,并且因为我不想将它注入我的控制器并将其传递给Canvas构造函数,所以我想要修改我的模块,如下所示:

angular.module("myModule", [])
.factory("Canvas", ["$q", function(q) {
    var that …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-module

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

通过名称访问表单的控件

不确定这篇文章的标题是否准确。我试图通过在循环中“组合”它们的名称来访问 Windows 窗体控件及其属性,但我似乎找不到相关文档。使用VB.net。基本上,假设我有以下内容:

Dim myDt As New DataTable

Dim row As DataRow = myDt.NewRow()

row.Item("col01") = Me.label01.Text
row.Item("col02") = Me.label02.Text
'...
row.Item("colN") = Me.labelN.Text
Run Code Online (Sandbox Code Playgroud)

我想编写一个 for 循环而不是 N 个单独的指令。虽然表达作业的左侧很简单,但当涉及到右侧时,我却被难住了:

For i As Integer = 1 to N
    row.Item(String.format("col{0:00}", i)) = ???
    ' ??? <- write "label" & i (zero-padded, like col) and use that string to access Me's control that has such name
Next
Run Code Online (Sandbox Code Playgroud)

另外,我希望能够将最终的“.Text”属性作为字符串传递,因为在某些情况下我需要“Text”属性的值,在其他情况下需要“Value”的值“ 财产; 一般来说,我感兴趣的属性可能是 i 的函数。

干杯。

vb.net winforms

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

链接承诺时 WebSQL 错误“不允许执行 SQL”

我知道标题很长,但老实说,我无法为我的具体案例想出更好的标题(欢迎提出建议)。所以基本上我记下了这个 JSFiddle(一个简化版本)我面临的问题。我正在使用 AngularJS 的$q.all方法来收集依赖于查询结果的承诺数组:

db.transaction(function(tx) {
    $q.all(fn(tx)).then(function(a) {
        console.log("Result:", a);
    });
});
Run Code Online (Sandbox Code Playgroud)

wherefn是一个返回承诺数组的函数。
在上述情况下,一切都按预期工作,并且结果(解决承诺的 sql 查询结果数组)console.log正确生成。
但是,如果我包装$q.allthen另一个延迟对象的方法中,如下所示:

db.transaction(function(tx) {
    fn2(tx).then(function(tx) {
        $q.all(fn(tx)).then(function(a) {
            console.log("Result:", a);
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

我得到的错误:Error: Failed to execute 'executeSql' on 'SQLTransaction': SQL execution is disallowed.
fn2的是,仅仅是返回一个承诺,其解析为一个函数tx对象本身)。
我是否偶然发现了一个常见的陷阱?我搜索了但没有想出任何东西。干杯。

javascript promise web-sql angularjs

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

C#内联lambda表达式

标题很拗口,甚至不知道它的准确的(不能做的多大意义这个),所以我会尽力解释想我做到在C#使用等效javascript.关于我应该对这个问题提出什么标题的任何建议都非常受欢迎.
C#,说我已经定义了这个功能:

Func<string, string> getKey = entity => {
    switch(entity) {
        case "a":
            return "foo";
        case "b":
            return "bar";
        default:
            return "baz";
    }
};

string key = getKey(/* "a", "b", or something else */);
Run Code Online (Sandbox Code Playgroud)

现在假设我不想getKey显式定义函数,而是像在此等效javascript代码段中那样匿名使用它:

string key = (function(entity) {
    switch(entity) {
        case "a":
            return "foo";
        case "b":
            return "bar";
        default:
            return "baz";
    }
}(/* "a", "b", or something else */));
Run Code Online (Sandbox Code Playgroud)

我该C#怎么写呢?我试过了:

string key = (entity …
Run Code Online (Sandbox Code Playgroud)

javascript c#

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