我正在使用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;
这可能意味着它正在对属性值进行字符串比较。
有什么方法可以解决这个问题并绑定属性(甚至在初始化期间进行一次性绑定)?
答案 0 :(得分:3)
如果我找到了你,你可以将你的价值包装在{{...}}
中以使其有效,就像这样:
<ui-select-match placeholder="..." allow-clear="{{!!$parent.allowClear}}">{{$select.selected.DisplayText}}</ui-select-match>
见Demo。