小编PCo*_*lho的帖子

ng-repeat完成后调用函数

我想要实现的基本上是"on ng repeat finished rendering"处理程序.我能够检测到它何时完成,但我无法弄清楚如何从中触发一个功能.

检查小提琴:http://jsfiddle.net/paulocoelho/BsMqq/3/

JS

var module = angular.module('testApp', [])
    .directive('onFinishRender', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attr) {
            if (scope.$last === true) {
                element.ready(function () {
                    console.log("calling:"+attr.onFinishRender);
                    // CALL TEST HERE!
                });
            }
        }
    }
});

function myC($scope) {
    $scope.ta = [1, 2, 3, 4, 5, 6];
    function test() {
        console.log("test executed");
    }
}
Run Code Online (Sandbox Code Playgroud)

HTML

<div ng-app="testApp" ng-controller="myC">
    <p ng-repeat="t in ta" on-finish-render="test()">{{t}}</p>
</div>
Run Code Online (Sandbox Code Playgroud)

答案:来自finishmove的工作小提琴:http …

events directive handler ready angularjs

250
推荐指数
5
解决办法
14万
查看次数

如何在AngularJS中动态添加指令?

我有一个非常简化的版本,我正在做的事情可以解决问题.

我有一个简单的directive.每当您单击一个元素时,它会添加另一个元素.但是,需要首先编译它才能正确呈现它.

我的研究引导我$compile.但是所有的例子都使用了一个复杂的结构,我真的不知道如何在这里应用.

小提琴在这里:http://jsfiddle.net/paulocoelho/fBjbP/1/

JS就在这里:

var module = angular.module('testApp', [])
    .directive('test', function () {
    return {
        restrict: 'E',
        template: '<p>{{text}}</p>',
        scope: {
            text: '@text'
        },
        link:function(scope,element){
            $( element ).click(function(){
                // TODO: This does not do what it's supposed to :(
                $(this).parent().append("<test text='n'></test>");
            });
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

Josh David Miller的解决方案:http: //jsfiddle.net/paulocoelho/fBjbP/2/

dynamically-generated angularjs angularjs-directive

210
推荐指数
6
解决办法
17万
查看次数

Javascript按布尔属性排序对象数组

请参阅最后的编辑以了解实际问题.

好的,我有这个场景:

a = [false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

a.sort(function(a,b){return !a && b});
Run Code Online (Sandbox Code Playgroud)

它给了我这个:

[false, false, true, true, true, …
Run Code Online (Sandbox Code Playgroud)

javascript sorting

56
推荐指数
5
解决办法
6万
查看次数

AngularJS指令属性来自控制器的访问

我试图在控制器函数中访问指令的属性.但是,当我访问它时,它是未定义的.我注意到如果我做一个简单的计时器就行了.有没有办法只在指令执行后才能执行代码,并且它的范围已准备好并设置为使用?

我弄了一个小提琴.确保您的控制台已打开.http://jsfiddle.net/paulocoelho/uKA2L/1/

这是我在小提琴中使用的代码:

<div ng-app="testApp" >
    <testcomponent text="hello!"></testcomponent>
</div>
Run Code Online (Sandbox Code Playgroud)
var module = angular.module('testApp', [])
    .directive('testcomponent', function () {
    return {
        restrict: 'E',
        template: '<div><p>{{text}} This will run fine! </p></div>',
        scope: {
            text: '@text'
        },
        controller: function ($scope, $element) {
            console.log($scope.text); // this will return undefined
            setTimeout(function () {
                console.log($scope.text);    // this will return the actual value...
            }, 1000);
        },
        link: function ($scope, $element, $attrs) {
            console.log($scope.text);
            setTimeout(function () {
                console.log($scope.text);
            }, 1000);
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

javascript events controller angularjs angularjs-directive

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

Access-Control-Allow-Origin和Angular.js $ http

每当我制作一个webapp并且我遇到CORS问题时,我就开始煮咖啡了.拧紧它一段时间后,我设法让它工作,但这次不是,我需要帮助.

这是客户端代码:

$http({method: 'GET', url: 'http://localhost:3000/api/symbol/junk', 
            headers:{
                'Access-Control-Allow-Origin': '*',
                'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
                'Access-Control-Allow-Headers': 'Content-Type, X-Requested-With',
                'X-Random-Shit':'123123123'
            }})
        .success(function(d){ console.log( "yay" ); })
        .error(function(d){ console.log( "nope" ); });
Run Code Online (Sandbox Code Playgroud)

服务器端是带有快速应用程序的常规node.js.我有一个名为cors的扩展名,它以这种方式表达:

var app = express();
app.configure(function(){
  app.use(express.bodyParser());
  app.use(app.router);
  app.use(cors({origin:"*"}));
});
app.listen(3000);

app.get('/', function(req, res){
    res.end("ok");
});
Run Code Online (Sandbox Code Playgroud)

如果我做

curl -v -H "Origin: https://github.com" http://localhost:3000/
Run Code Online (Sandbox Code Playgroud)

它回来了:

* Adding handle: conn: 0x7ff991800000
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7ff991800000) send_pipe: 1, …
Run Code Online (Sandbox Code Playgroud)

javascript cors angularjs

31
推荐指数
2
解决办法
11万
查看次数

在python中通过它们的接近度聚类值(机器学习?)

我有一个在一组对象上运行的算法.该算法产生一个得分值,用于指示集合中元素之间的差异.

排序的输出是这样的:

[1,1,5,6,1,5,10,22,23,23,50,51,51,52,100,112,130,500,512,600,12000,12230]

如果您将这些值放在电子表格中,您会看到它们组成了组

[1,1,5,6,1,5] [10,22,23,23] [50,51,51,52] [100,112,130] [500,512,600] [12000,12230]

有没有办法以编程方式获得这些分组?

也许一些使用机器学习库的聚类算法?还是我在思考这个?

我看过scikit,但他们的例子对我的问题来说太先进了......

python cluster-analysis machine-learning data-mining

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

D3 JS倒置路径文本

在这种情况下,是否可以显示文字不是颠倒的?

http://jsfiddle.net/paulocoelho/Hzsm8/1/

码:

var cfg = {
    w:400,
    h:400
};

var g = d3.select("#testdiv").append("svg").attr("width", cfg.w).attr("height", cfg.h).append("g")

var arct = d3.svg.arc()
        .innerRadius(cfg.h / 5)
        .outerRadius(cfg.h / 3)
        .startAngle(Math.PI/2)
        .endAngle(Math.PI*1.5);

var path = g.append("svg:path")
    .attr("id","yyy")
    .attr("d", arct)
    .style("fill","blue")
    .attr("transform", "translate("+cfg.w/2+","+cfg.h/6+")");

var text = g.append("text")
            .style("font-size",30)
            .style("fill","#F8F8F8")
            .attr("dy",35)
            .append("textPath")
            .attr("xlink:href","#yyy")
            .attr("startOffset",50)
            .text("some text")
    ;
Run Code Online (Sandbox Code Playgroud)

svg d3.js

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

Threejs:计算旋转文本的边界框

在我的场景中我有一条文字。创建后,我旋转它以适合正确的区域。然而,边界框完全忽略了旋转。

\n\n

我在这里做了一个小提琴:http://jsfiddle.net/paulocoelho/qMqH7/5/

\n\n

如果您检查输出,您会得到:

\n\n
// before rotation\nTHREE.Vector3 {x: 28.365000000000006, y: 6.2806, z: 0.5, constructor: function, set: function\xe2\x80\xa6}\nTHREE.Vector3 {x: 0.2542, y: 0, z: 0, constructor: function, set: function\xe2\x80\xa6}\n// after rotation\nTHREE.Vector3 {x: 28.365000000000006, y: 6.2806, z: 0.5, constructor: function, set: function\xe2\x80\xa6}\nTHREE.Vector3 {x: 0.2542, y: 0, z: 0, constructor: function, set: function\xe2\x80\xa6}\n
Run Code Online (Sandbox Code Playgroud)\n\n

因为我在 Z 轴上旋转 90 度,所以我希望看到“旋转后边界”:

\n\n
{x: 2.2806, y: 28.365000000000006, z: 0.5}\n
Run Code Online (Sandbox Code Playgroud)\n\n

有没有办法可以轻松实现这一目标?

\n

javascript rotation three.js

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

扩展javascript本机对象

我有这个代码:

pPoint = function(x,y){
    this.x = x || 0;
    this.y = y || 0;
}

pPoint.prototype = {
    constructor:pPoint,
    add:function(){
        return this.x+this.y;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

a = new pPoint(10,20)
console.log(a.add());
Run Code Online (Sandbox Code Playgroud)

按预期工作(返回30).

但是,如果我这样做:

Array.prototype = {
    abcd:function(){
        console.log("bla bla testing");     
    }
}
Run Code Online (Sandbox Code Playgroud)

然后这样做:

b = new Array();
b.abcd();
Run Code Online (Sandbox Code Playgroud)

它不起作用......为什么?

我知道如果我这样做很好......

Array.prototype.abcd:function(){
        console.log("bla bla testing");     
    }
}
Run Code Online (Sandbox Code Playgroud)

我只是不明白为什么preivous的工作在我的pPoint而不是在Array ...

小提琴:http://jsfiddle.net/paulocoelho/wBzhk/

javascript prototype class

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

如何防止原型显示在数组上

我想用我自己的一些函数扩展Array功能.这工作正常.但是,我注意到在控制台中,函数被"附加"到数组中,就好像它们是数据一样.

小提琴:http://jsfiddle.net/BxfCy/1/

这是代码,因为stackoverflow迫使我发布(只需单击小提琴):

a = [1,2,3];

Array.prototype.doMagic = function(){
    var returnvar = this;
    returnvar.push(42);
    return returnvar;
}

console.log(a);

for (var n in a){
    console.log(a[n]);
}
Run Code Online (Sandbox Code Playgroud)

我的想法是其他数组函数没有显示在数组中(你知道,像push一样).有没有办法不在数组中显示原型函数?

javascript arrays prototype

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