Javascript 高阶函数名
我刚刚为answer编写了这个函数,所以:Javascript 高阶函数名,javascript,angularjs,underscore.js,higher-order-functions,Javascript,Angularjs,Underscore.js,Higher Order Functions,我刚刚为answer编写了这个函数,所以: 函数ngWrap($scope,fn){ 返回函数(){ var args=[].slice.call(参数); 返回$scope.$apply(函数(){ fn.apply(null,args); }); }; } 使用更好的版本: 函数ngWrap($scope,fn){ 返回函数(){ var args=[].slice.call(参数); 如果($scope.$$phase){ fn.apply(null,args); }否则{ 返回$sco
函数ngWrap($scope,fn){
返回函数(){
var args=[].slice.call(参数);
返回$scope.$apply(函数(){
fn.apply(null,args);
});
};
}
使用更好的版本:
函数ngWrap($scope,fn){
返回函数(){
var args=[].slice.call(参数);
如果($scope.$$phase){
fn.apply(null,args);
}否则{
返回$scope.$apply(函数(){
fn.apply(null,args);
});
}
};
}
可用于缩短此时间的:
socket.on('myevent',function(arg){$scope.$apply(function(){trigger_fn(arg)})
进入:
socket.on('myevent',ngWrap($scope,trigger_fn));
这个函数有名字(第一个)吗?或者您可以使用下划线编写它的简单版本(可以使用$scope.$apply.bind($scope)
作为参数),或者lisp有这样的函数
这个函数有名字吗
我不知道,但我可以想到“将fn
提升到角度$scope
”左右
您可以使用下划线编写它的简单版本
是的,您在那里做的是基本的函数组合,因此您可以使用下划线:
function ngWrap($scope, fn) {
return _.compose($scope.$apply.bind($scope), fn);
}