nya-bootstrap-select也许应该完全重写了
就在不久前,我还对这个插件很乐观,不过在解决了最近的两个bug之后,我觉得同angularjs自带的directive作斗争是一件不愉快的事情。
由于nya-bootstrap-select依赖bootstra-select这个jQuery插件,而该插件需要使用select标签来定义下拉选框。但Angular内部已经把select标签作为了一个directive,并且定义了一些列特殊行为。这些行为导致了目前各种冲突,其中一个问题就是,当我们使用ng-options来生成选项的时候。select directive会先生成一个?值的option作为默认选项,一开始为了保持美观和一致性,我删除了这个选项,但我发现angular内部似乎会错误的引用位置,导致当select的值由无变成确定值时,删除后的第一个实际option被删除。 这带来了严重的问题,最后不得已,我只能保留那个?的option,但这样很难看。看起来避免使用select标签才是根本解决之道。