2016-04-25 133 views
0

我正在使用ui-select2,版本3.5.2,尝试执行单个选择,提前输入并从REST API中检索下拉列表。 看起来它正在工作,除了一个主要问题,即ng模型的属性被设置为对象{Id: "some id", text: "some text"}而不是实际的Id属性。我无法弄清楚如何告诉ui-select2控件将ng-model属性设置为对象的“Id”字段,而不是整个对象。 我已经尝试了各种黑客与观察员,但没有得到任何地方。我确信有些东西是我错过的,因为这是应该可以轻松实现的。UI-Select2绑定到对象而不是对象的属性

这里是我的javascript代码

$scope.selectOptions = { 
       placeholder: '- Select Value -', 
       allowClear: true,     
       minimumInputLength: 2, 
       initSelection: function (element, callback) 
       { 
        if ($scope.myobj && $scope.myobj.Id && $scope.myobj.Id !== '00000000-0000-0000-0000-000000000000') 
        { 
         $.ajax("../../api/objs/" + $scope.myobj.Id).done(function (data) { 
          var res = $(data).map(function (i, o) { 
           return { 
            id: o.Value, 
            text: o.Display 
           }; 
          }).get();        
          callback(res[0]);               
         }); 
        } 
       }, 
       ajax: 
       { 
        type: "GET", 
        url: function (term) { 
         return ["../../api", "objs", encodeURIComponent(term)].join("/"); 
        }, 
        dataType: "json", 
        contentType: "application/json", 
        cache: false,      
        results: function (data, page) { 
         return { 
          results: $(data).map(function (i, o) { 
           angular.extend(o, { 
            id: o.Value, 
            text: o.Display 
           }); 
           return o; 
          }).get() 
         }; 
        } 
       } 
      } 

这里是我的的html代码

<div ui-select2='selectOptions' ng-model="myobj.Id" style="width:215px" /> 

回答

0

我解决这个得通过结合到一个单独的属性,然后添加NG-改变我的div和绑定属性的id字段同步到我的对象上的实际属性。

相关问题