Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用角度设置从对象属性中选择的显示格式?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何使用角度设置从对象属性中选择的显示格式?

Javascript 如何使用角度设置从对象属性中选择的显示格式?,javascript,angularjs,Javascript,Angularjs,我在html select中显示数据,如下所示: $scope.StateList = {"States": [ { "Id": 1, "Code": "AL", "Name": "Alabama" }, { "Id": 2, "Code": "AK", "Name": "Alaska" }, { "Id": 3, "Code":

我在html select中显示数据,如下所示:

$scope.StateList = {"States": [
    {
        "Id": 1,
        "Code": "AL",
        "Name": "Alabama"
    },
    {
        "Id": 2,
        "Code": "AK",
        "Name": "Alaska"
    },
    {
        "Id": 3,
        "Code": "AZ",
        "Name": "Arizona"
    },
    {
        "Id": 4,
        "Code": "AR",
        "Name": "Arkansas"
    }]}

现在,这将在选择框中显示该州的全名,如“亚利桑那州”。我想做的是格式化显示,而不向对象添加新属性,使用类似(state.Name、state.Code、state.Id)的内容。我正在尝试使用某种过滤器来实现这一点,但我还没有弄明白。谢谢你的建议


尝试创建一个小格式筛选器:-

 <select ng-model="Address.State" 
 ng-options="state.Code as state.Name for state in StateList.States"></select>
并将其用作:-

app.filter('stateName', function() {
  return function(itm) {
    return [itm.Name , itm.Code, itm.Id].join();
}});

有三种方法可以实现这一点。第一种方法是只设置要内联的值:

 ng-options="state.Code as (state|stateName) for state in StateList.States

或者您也可以做同样的事情,但作为控制器中的一项功能:

<select ng-model="Address.State" ng-options="state.Code as (state.Name + ', ' + state.Code + ', ' + state.Id)  for state in StateList.States"></select>
$scope.display=函数(状态){
返回state.Name+'、'+state.Code+'、'+state.Id;
}
或者您可以创建一个过滤器(根据PSLs答案)

类似的内容?
$scope.display = function(state) {
    return state.Name + ', ' + state.Code + ', ' + state.Id;
}

<select ng-model="Address.State" ng-options="state.Code as display(state) for state in StateList.States"></select>