如果我有一个公开“选定”值数组的服务(通过select2小部件上的双向数据绑定),并且我想将此数组的长度限制为最多5个值,我可以设置一个控制器上的$scope.$watch
如果select2指令中的新值长度大于5,则将所选列表设置回旧值(5)。
这看起来非常混乱。首先,它将意味着再次不必要地调用$scope.$watch
,并且还涉及我在控制器中具有我不想要的逻辑。因为这肯定是angularJS要解决的主要问题之一,有没有更好的方法来做到这一点?
更新:我正在使用的小部件的HTML
<input
id="comparison"
ui-select2="select2"
ng-controller="MyController"
ng-model="selected"
placeholder="Select options (max 10)"
>
</input>