我的角度函数是在服务中定义的,
$delegate.isConfigurable = function (product, config) {
if (product) {
///.....
}
return config.getDetail();
};现在,在controller上,我通过以下方式调用:
mySer.isConfigurable(null, conf);
但在我看来,经过null似乎有点觉醒了。
我试着调用mySer.isConfigurable(conf);,但这使conf与函数的first parameter匹配。
相反,是否有其他只传递conf的方法?
发布于 2017-05-06 02:40:50
也许您可以切换参数定义的顺序吗?
$delegate.isConfigurable = function (config, product) {
if (product) {
///.....
}
return config.getDetail();
};然后,在这种情况下,您可以只调用mySer.isConfigurable(conf);和product,并将其计算为false。
发布于 2017-05-06 02:40:59
如果不想使用null,那么需要像下面这样交换函数参数。
$delegate.isConfigurable = function (config, product) {
if (product) {
///.....
}
return config.getDetail();
};现在,如果调用该函数,传递一个参数,即config的值,而product参数将作为undefined传递。
mySer.isConfigurable(conf);发布于 2017-05-06 02:46:25
如果有一个具有不同参数数的函数,则可以使用arguments object
参数对象是与传递给function.The参数的参数对应的类似数组的对象,是所有函数中可用的局部变量。
所以你的代码
$delegate.isConfigurable = function() {
var param = null,
config = null;
if (arguments && arguments.length == 2) {
// you have param and config
param = arguments[0];
config = arguments[1];
} else if (arguments && arguments.length == 1) {
config = arguments[0];
}
return config.getDetail();
};你可以用一个或两个或n个param数来称呼它
mySer.isConfigurable(conf)
mySer.isConfigurable(param,conf)
mySer.isConfigurable(param1,param2,conf)https://stackoverflow.com/questions/43816101
复制相似问题