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"
添加到模板中即可。
有一种奇怪的情况,当我将 ng-model 声明为对象时,例如 $scope.abc.xyz = "test"
,绑定有效,而如果我声明 $scope.abc = "test"
,则绑定无效。
不确定是什么问题:)
我有一个 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"
添加到模板中即可。
有一种奇怪的情况,当我将 ng-model 声明为对象时,例如 $scope.abc.xyz = "test"
,绑定有效,而如果我声明 $scope.abc = "test"
,则绑定无效。
不确定是什么问题:)