我有一個選擇2下拉與下面的標記:角度選擇二formatResult不更新模板
<select id="selectByName" ui-select2="select2Options" ng-model="selectId" data-placeholder="Select item by name" style="width:250px">
<option></option>
<option ng-repeat='item in items' data-show="{{item.show}}" value="{{item.id}}">
{{item.name}}
</option>
</select>
而且JS包含以下內容:
$scope.items
(一個具有ID陣列,一個布爾顯示屬性和名稱屬性)
和選擇2個選項:
select2Options : {
allowClear: true,
placeholder:"select a value",
formatResult: function(state) {
var $elem = angular.element(state.element),
isVisible = $elem.data('show');
return isVisible ? '<span style="color:red">'+state.text+'</span>':
<span style="color:blue">'+state.text+'</span>';
}
},
好吧,ng-repeat
正確更新了html標記,並將data-show屬性設置爲true或false,但formatResult
函數不更新此值。 在html源代碼data-show="true"
和formatResult
函數$elem.data('show') = false;
中,爲什麼每次select2打開時都會調用函數?
下面是一個解釋我的問題的解釋器:plnkr.co/edit/d0LxuhzdQh7hMdzOoxpr?p=preview。它看起來formatResult只在第一次打開select2之前正確更新結果一次。
我避免使用HG-選項中建議:[鏈接](HTTP:// HTTPS://github.com/ angular-ui/ui-select2):ui-select2與
我很樂意將您的答案作爲標記,我非常感謝您作爲所需答案,但我仍希望有人能夠對我在此處指出的具體問題進行闡述。爲什麼數據顯示沒有在formatResultFunction中更新。 – vladblindu 2014-08-31 19:13:24
@vladblindu我不喜歡在我的控制器中放置格式化代碼。我認爲觀點和指示是爲了這個。這就是說,這是做你想要的嗎? http://plnkr.co/edit/6Vma1WTQWQw0HAIQUVxE?p=preview – 2014-08-31 20:00:54