Javascript 如何限制自定义指令的可能属性值?
目前我正在尝试:Javascript 如何限制自定义指令的可能属性值?,javascript,angularjs,Javascript,Angularjs,目前我正在尝试: module.directive('myDirective', function() { return { scope: { foo: '@' }, template: '{{foo}}', link: function(scope) { if (scope.foo != 'first' && scope.foo != 'second') throw ne
module.directive('myDirective', function() {
return {
scope: { foo: '@' },
template: '{{foo}}',
link: function(scope) {
if (scope.foo != 'first' && scope.foo != 'second')
throw new Error("Only values 'first' and 'second' allowed for attribute 'foo' of myDirective");
}
};
});
但是有没有更具角度的方法呢?当您有一组像enum这样的值可以传递给指令时,您应该让控制器和指令都可以使用这组值 例如,如果只能传递某些颜色,则应创建一个颜色常量,并将该常量注入控制器以及指令中。从控制器将其传递到指令,并在指令中对照颜色常量集合进行检查
我不认为你可以使检查本身更容易,或者更像“角度方式”。但是,您可以创建一个工厂方法来检查颜色是否是常量中的有效颜色。谢谢,但听起来很复杂:真的吗,角度?事实上,javascript从来不会限制传递给函数的内容。这在Javascript中,在Angular中没有什么不同。Angular可以很容易地提供一种机制,也许可以,但我们都不知道,当然,这是可能的,但这是我的答案: