我有以下情况
src
我的控制器内部directives.directive('x', function () {
return {
scope: {
a: "=",
b: "="
},
controller: function($scope){
if((angular.isDefined($scope.a) && !angular.isDefined($scope.b))
|| (!angular.isDefined($scope.a) && angular.isDefined($scope.b))){
throw new Error('a and b need to be specified');
}
}
};
}
出现问题。正如您所看到的,它很难阅读,而且效率不高。
它要做的是查看if
上是否定义了a
和b
。他们都可以错过,但如果其中一个被指定,另一个必须成为强制性的。
有没有更好的方法来写这个?
稍后编辑: 还有关于在范围上有三个变量并且我们需要相同行为的情况。你将如何进行?
答案 0 :(得分:1)
您可以使用函数isUndefined
if(angular.isUndefined($scope.a) || angular.isUndefined($scope.b))
{
throw new Error('a and b need to be specified');
}