Angularjs 角度ui选择:如何仅将选定值绑定到ng模型

Angularjs 角度ui选择:如何仅将选定值绑定到ng模型,angularjs,ui-select,Angularjs,Ui Select,模式中的PropertyType只是一个字符串,所以我想绑定选定的值,而不是选定的JSON项 $scope.PropertyType = {"value":"Apartment","name":"Apartment/Flat"} 我应该绑定什么到我的ng模型才能得到这个结果?您可以使用选择为符号: $scope.PropertyType = "Apartment" 您需要在select input中将ng模型属性更改为selected\u propertyType,并在更改时观察它,然后提取

模式中的PropertyType只是一个字符串,所以我想绑定选定的值,而不是选定的JSON项

$scope.PropertyType = {"value":"Apartment","name":"Apartment/Flat"}

我应该绑定什么到我的ng模型才能得到这个结果?

您可以使用
选择为
符号:

$scope.PropertyType = "Apartment"

您需要在select input中将ng模型属性更改为
selected\u propertyType
,并在更改时观察它,然后提取值并将其分配给
propertyType

repeat="propType as propType.value for propType in propertyTypes"
$scope.property=新属性();
$scope.property.propertyType={};
$scope.propertyTypes=[
{价值:'ResidentialPlot',名称:'ResidentialPlot'},
{值:'CommercialPlot',名称:'CommercialPlot'},
{值:'公寓',名称:'公寓/公寓'},
{值:'联排别墅',名称:'联排别墅'},
{价值:'House',名称:'Single Family House'},
{价值:'商业',名称:'商业地产'}
];
$scope.$watch('selected_propertyType',函数(newValue,oldValue){
if(newValue&&newValue!=oldValue){
$scope.propertyType=$scope.selected\u propertyType.value;
}
})
属性类型
已填充:{property.selected_propertyType}

{{$select.selected.value}
您不需要$watch

$scope.property = new Property();
$scope.property.propertyType = {};

$scope.propertyTypes = [
    { value: 'ResidentialPlot', name: 'Residential Plot' },
    { value: 'CommercialPlot', name: 'Commercial Plot' },
    { value: 'Apartment', name: 'Apartment/Flat' },
    { value: 'Townhouse', name: 'Townhouse' },
    { value: 'House', name: 'Single Family House' },
    { value: 'Commercial', name: 'Commercial Property' }
];

$scope.$watch('selected_propertyType',function(newValue,oldValue){
      if (newValue && newValue!=oldValue){
           $scope.propertyType = $scope.selected_propertyType.value;

      }

})


<label for="ptype" class="col-sm-2 control-label">Property Type</label>
<p>Populated: {{property.selected_propertyType}}</p>
<ui-select ng-model="property.selected_propertyType" id="ptype" theme="selectize" ng-disabled="disabled" style="width: 300px;" title="Choose Property Type">
    <ui-select-match placeholder="Select a Property Type">{{$select.selected.value}}</ui-select-match>
    <ui-select-choices repeat="propType in propertyTypes">
        <span ng-bind-html="propType.name"></span>
        <small ng-bind-html="propType.value"></small>    
</ui-select-choices>

{{$select.selected.value}

我也有同样的问题。我查阅了以下文件:

最好的方法是:


{{$select.selected.name}

请注意,我们如何能够在repeat中指定value.id,同时仍然使用value.name作为组合框中显示的内容。这将适用于将ng模型设置为value.id(无论保存了什么)的情况


我验证了这对我有效。之所以在这里发布,是因为谷歌将人们带到了这个页面。

尝试了这个方法,它在捕获最后一个值时完全打破了选择,你能详细说明一下吗?我得到的是:错误:[ngRepeat:iidexp]“收藏中的项目”中的“项目”应该是一个标识符或“(键,值)”表达式,但是得到了“propType.value”我认为propertyTypes中propType的propType.name应该是
propType.value作为propType.name(
select as label for value in array
),以便ng模型反映值,select将文本显示为name。但是我不知道uiselect的行为,也不起作用。不确定“选择为”功能本身是否在ui选择中实现。这是5月份报道的一个问题。下面是另一个关于使用标准选择的ng选项的例子。不确定是否同样扩展到用户界面选择非常感谢@欢迎光临,感谢您的支持:)这正是我想要的。这应该是选择的答案,因为它不需要额外的代码来工作。谢谢
$scope.property = new Property();
$scope.property.propertyType = {};

$scope.propertyTypes = [
    { value: 'ResidentialPlot', name: 'Residential Plot' },
    { value: 'CommercialPlot', name: 'Commercial Plot' },
    { value: 'Apartment', name: 'Apartment/Flat' },
    { value: 'Townhouse', name: 'Townhouse' },
    { value: 'House', name: 'Single Family House' },
    { value: 'Commercial', name: 'Commercial Property' }
];

$scope.$watch('selected_propertyType',function(newValue,oldValue){
      if (newValue && newValue!=oldValue){
           $scope.propertyType = $scope.selected_propertyType.value;

      }

})


<label for="ptype" class="col-sm-2 control-label">Property Type</label>
<p>Populated: {{property.selected_propertyType}}</p>
<ui-select ng-model="property.selected_propertyType" id="ptype" theme="selectize" ng-disabled="disabled" style="width: 300px;" title="Choose Property Type">
    <ui-select-match placeholder="Select a Property Type">{{$select.selected.value}}</ui-select-match>
    <ui-select-choices repeat="propType in propertyTypes">
        <span ng-bind-html="propType.name"></span>
        <small ng-bind-html="propType.value"></small>    
</ui-select-choices>
<ui-select ng-model="property.propertyType" id="ptype" theme="selectize" ng-disabled="disabled" style="width: 300px;" title="Choose Property Type">
    <ui-select-match placeholder="Select a Property Type">{{$select.selected.value}}</ui-select-match>
    <ui-select-choices repeat="propType.value as propType in propertyTypes track by $index | filter: $select.search">
        <div ng-bind-html="propType.value | highlight: $select.search"></div>    
</ui-select-choices>