我试图实现非常直接的目标:
<ui-select multiple ng-model="company.stack" theme="bootstrap">
<ui-select-match>{$$item.name$}</ui-select-match>
<ui-select-choices repeat="technology in technologies | filter: $select.search">
<div ng-bind-html="technology.name | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
更改对象时,更改不会反映在model.stack模型中。我尝试将其更改为$ parent.company.stack,但它仍然无法正常工作。我错过了什么? 我使用的是AngularJS v1.3.0-beta.17。
答案 0 :(得分:33)
我遇到了与angular 1.3.14
和ui-select
类似的问题以及绑定到数组的多选ui-select
指令。我无法将所选项目绑定到ng-model
中引用的数组。
我通过将selectedItems
包装到对象中来实现它:
$scope.myObj = { selectedItems : []};
...
<ui-select ng-model="myObj.selectedItems" ...>
</ui-select>
将selectedItems
直接放在$scope
上并不适用于我。
答案 1 :(得分:4)
不确定你是否已经解决了这个问题,但我也在努力解决这个问题&#34;基本用例&#34;今天,成为AngularJS和所有人的新手。我使用Angular 1.2.16和ui-select 0.8.3,虽然其他一切都有效,但我还是无法更新范围变量employee.selected
。
就我而言,问题是由于我对AngularJS的经验有限造成的。由于ng-model被设置为对象的属性(员工,在我的情况下),因此必须首先对其进行初始化。将$scope.employee = {};
添加到控制器中解决了这个问题。
答案 2 :(得分:1)
初始化一个空对象就像@Rado一样,在这个结构中为我修复了它:
<ui-select ng-model="reportFilterStatus.selected" title="Filtrar status">
<ui-select-match placeholder="Filtra un estatus">
{{$select.selected}}
</ui-select-match>
<ui-select-choices repeat="status in filterStatusOptions | filter: $select.search">
<small ng-bind-html="status | highlight: $select.search"></small>
<span ng-bind-html="statuse | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
答案 3 :(得分:0)
我有类似的问题,似乎有角度-ui-select#0.7需要角度#1.2。*才能正常工作。
答案 4 :(得分:0)
我在Angular 1.2.16和ui-select 0.8.3上使用非常基本的用例进行了挣扎。虽然在我看来你的代码中有一个拼写错误,但在 ui-select-match 中。
对于某种标准属性名称{{$select.selected.your_property_here}}
,通常该属性看起来像$select.selected
,所以双花括号和单个美元符号。可能这是你的问题吗?
答案 5 :(得分:0)
我通过在下一个div上 </ui-select>
之后为该模型设置ng-init来解决这个问题。
示例:
<div class="col-md-6" ng-init="company-stack=null">
答案 6 :(得分:0)
对我来说,那是因为没有更新文本,我就像这样使用它:
$timeout(function () {
$('#ownerdetail').trigger("create");
$('#ownerdetail').delay(0).animate({opacity: 1}, 100);
$('#selectdcontact').selectmenu().selectmenu('refresh'); //This solves it
$('#selectdcust').selectmenu().selectmenu('refresh'); //This solves it
});
答案 7 :(得分:0)
我对angularjs 1.4遇到类似的问题。在一个控制器中,ng-model值得到更新。但是在其他页面上使用相同的方法则行不通。以下是我的代码
工作:
var ctrl = this; ctrl.filters = {}; ctrl.filters.country = $rootScope.lUPro.RM_Country.split(","); $(".country_select2").select2().val(ctrl.filters.country).trigger('change');
选择框为
$comint->CountrySelectBox(array("name"=>"country[]", "class"=>"country_select2 form-control", "id" => "req_country", "ng-model" => "ctrl.filters.country","multiple" =>"multiple"));
不起作用:
var prectrl = this; prectrl.preferenceformdata = {}; var pf = {}; pf.country = $rootScope.lUPro.RM_Country.split(","); prectrl.preferenceformdata = pf; $(".rm_country_select2").select2().val(prectrl.preferenceformdata.country).trigger('change');
选择框:
$comint->CountrySelectBox(array("name"=>"country[]","class"=>"country_select2 form-control","id" => "req_country","ng-model"=>"prectrl.preferenceformdata.country","multiple" =>"multiple"));
所以要变通,我要用来更新ng-model变量中的值:
$(".country_select2").select2().val(prectrl.preferenceformdata.country) .trigger('change').on("change", function(e){ var values = $(this).val(); $scope.$apply(function(){prectrl.preferenceformdata.country = values;}); });
答案 8 :(得分:0)
这里有些人碰到了问题,但我会澄清。由于某种原因,ui-select要求ng-model是$ scope中的嵌套值。因此ng-model必须指向范围内的x.y而不是x或y。