使用AngularJS UI Typeahead进行绑定的正确方法

时间:2015-10-16 17:16:20

标签: javascript angularjs

我从一个代表州的电话中收到了一些号码。 例如:

 scope.states = [{
    'key': 1,
    'value': 'Alabama'
    },
    {
    'key': 2,
    'value': 'Alaska'
    }
 ];

然后我使用Angular的UI Bootstrap typeahead指令,如下所示:

<input type="text" ng-model="form.eoiEmployee.state | stateLookup" typeahead="state.key as state.value for state in states | filter:$viewValue | limitTo:8" class="form-control">

对于我的用户的模型值,我从服务器传递1,这很好,我只需要在UI中显示“Alabama”,而不是1.我尝试将stateLookup的过滤器添加到我的模型中,但我收到此错误:“[ngModel:nonassign] Expression'sform.eoiEmployee.state | stateLookup'是不可分配的。”有任何想法吗?这是我的过滤器。

.filter('stateLookup', function (Enum) {
  return function (input) {
    return Enum.stateLookup(input);
  };
});

如果需要,我的Enum服务电话。

stateLookup: function(id) {
  angular.forEach(StateType, function(state) {
    if(state.key === id) {
        return state.value;
    }
  });
}

0 个答案:

没有答案