Kendo DropdownList 和 ng-model 不起作用

Kendo DropdownList and ng-model doesn't work

我有一个 Kendo 下拉列表绑定到 ObservableArray/DataSource。它适当地填充数组中的值。但是当我将 ng-model 绑定到 属性 时,下拉列表无法 select 值。

HTML:

<select kendo-drop-down-list k-options="dropOptions" ng-model="user.id"></select>

JS:

var users = [
  { id: 1, name: 'A' },
  { id: 2, name: 'B' },
  { id: 3, name: 'C' },
  { id: 4, name: 'D' },
  { id: 5, name: 'E' },
  { id: 6, name: 'F' }
];

var usersDataSource = new kendo.data.ObservableArray(users);

$scope.dropOptions = {
  dataSource: usersDataSource,
  dataTextField: 'name',
  dataValueField: 'id',
  optionLabel: "Select one..."
};

$scope.welcome = "World";
$scope.user = { id: 3 }

$scope.user = { id: 3 } 应该强制下拉列表到 select C.

这是 link 给 Plunkr 的: http://plnkr.co/edit/BxTqWet5sz725ZtKEKJr?p=preview

我如何根据 属性 中指定的值使下拉列表 selection 与 ng-model 绑定。我也使用过 k-ng-model,但它不起作用。请帮助我我在这里做错了什么。谢谢。

编辑:下拉列表中的 selection 不是硬编码的。它将从数据库中获取。

<div ng-controller="AppCtrl">
  <h1>Hello {{ welcome }}!</h1>
  <div>Selected value is {{ user.id }}</div>
  <select kendo-drop-down-list 
          k-options="dropOptions"
          ng-model="user.id"
          value= 3
          class="glow"></select>
</div>

Kendo 下拉值不反映基于 ng-model 的选择。相反,它提供了一个新属性:k-ng-model

一个基本的例子,看看这个:k-ng-model

我使用的是 Angular 1.4.9 和 Kendo v2015.3.1111。降级到 Angular 1.4.8 使其工作。

我找到了一个有效的解决方案。

  <select kendo-drop-down-list
         k-options="odsSoluciones"
         k-data-text-field="'descripcion'"
         k-data-value-field="'solucionId'"
         k-value="prescDPIntercambio.solucionDPId"
         ng-model="prescDPIntercambio.solucionDPId">
 </select>


$scope.odsSoluciones = 
     dataSource: new kendo.data.DataSource({
         data: solucionesModel.data,
         }),
    };

在我的例子中 odsSoluciones returns 一个包含 "solucionId" 和 "descripcion" 字段的数组,prescDPIntercambio.solucionDPId 是我希望看到的值 selected

只需将 k-value = "user.id" 添加到模板中即可。

Working Plunker

有一种奇怪的情况,当我将 ng-model 声明为对象时,例如 $scope.abc.xyz = "test" ,绑定有效,而如果我声明 $scope.abc = "test" ,则绑定无效。 不确定是什么问题:)