将范围值绑定到 ui-select-匹配 angular 的 ui-select 中的属性

Binding scope values to ui-select-match attributes in angular's ui-select

我正在使用 AngularUI 的 UI-Select 在我的应用程序中创建丰富的选择,我正在尝试绑定 allow-clear 属性作用域上的函数或 属性:

<ui-select ng-model="$parent.model" theme="bootstrap">
    <ui-select-match placeholder="..." allow-clear="$parent.allowClear">{{$select.selected.DisplayText}}</ui-select-match>
    <ui-select-choices repeat="opt.ID as opt in operators">
        {{opt.DisplayText}}
    </ui-select-choices>
</ui-select>

但无论我怎样尝试,都无法正常工作。然后在UI-Select源码上找到如下代码,在uiSelectMatch指令定义下:

    $select.allowClear = (angular.isDefined(attrs.allowClear)) ? (attrs.allowClear === '') ? true : (attrs.allowClear.toLowerCase() === 'true') : false;

这可能意味着它正在对属性值进行字符串比较。

有什么方法可以解决这个问题并绑定属性(即使是初始化期间的一次性绑定)?

如果我没看错,您可以将您的值包装在 {{...}} 中以使其正常工作,如下所示:

<ui-select-match placeholder="..." allow-clear="{{!!$parent.allowClear}}">{{$select.selected.DisplayText}}</ui-select-match>

见少Demo.