我已经实现了一个远程验证指令,一旦输入模糊,它就会查询指定的 JSON API 端点。它期待响应{ valid: true|false }
。
我现在必须扩展它以允许它发送涉及来自父范围的多个值的请求。
我的标签定义如下所示:
<input remote-validate endpoint="/api/action/:value" ng-model="MyInput" />
其中 :value 被替换为 $scope.MyInput 的 urlencoded 值。这运作良好。
我需要的是这样的端点/api/action/:value/:person/:thing
, :person 和 :thing 替换绑定到父范围值。我最初的想法是拥有一个bindings
将父范围映射到端点的属性。
<input remote-validate endpoint="/api/action/:value/:person/:thing" bindings="{person: 'firstName', thing: 'thingName'}" ng-model="MyInput" />
(...)
<input ng-model="firstName" /> <input ng-model="thingName" />
给定var bindings = scope.$eval(attrs.bindings);
是否有任何方法可以遍历bindings
对象并创建与父范围的双向绑定?
编辑:一种解决方法可能是这样做:
<input validate-remotely
endpoint="api/action/:value/:param1/:param2"
param1="person"
param2="thing" />
这显然意味着我只能使用我在范围定义中指定的参数数量。这对我来说是一个很好的工作。很高兴知道是否有办法在编译/链接时动态创建这些绑定。
我可以提供一个小提琴,但我现在没有时间,所以我希望有人能对这是否可能/如何可能有一个好主意。