我的页面上有一个绑定到 JavaScript 数组的 KendoUI 网格。单击网格中的一行时,将触发行更改事件,我抓取代表该行的对象。我现在想使用 AngularJS 的模板来绑定到这样的模型......
<div ng-app ng-model="currentRecord">
{{FirstName}} - {{Surname}}
</div>
FirstName 和 Surname 都是该行对象的属性。所以我想我要问的是如何从 AngularJs 控制器外部设置模型?
我只是在选择 Angular,所以我所问的可能是个坏主意,如果是这样,请告诉我原因。
更新
根据 Pieter 的回答,我尝试使用“Angular Kendo”来实现这一目标
我正在使用 MVC 助手来渲染网格,我的代码看起来像这样
<div ng-app="ngUsers">
<div ng-controller="UserCtrl">
<div class="span6">
@(Html.Kendo().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.Id).Hidden(true);
columns.Bound(p => p.FirstName);
columns.Bound(p => p.LastName);
})
.Groupable()
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.Selectable()
.Events(e => e.Change("rowSelected"))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("AjaxList", "User"))
)
)
</div>
<div id="results">
{{FirstName}}
</div>
</div>
</div>
我想要的是在选择该对象中的第一个名称属性时,在结果div中显示。
我的角度控制器看起来像这样......
var ngUsers = angular.module('ngUsers', ["kendo.directives"]);
ngUsers.controller("UserCtrl", function ($scope) {
$scope.rowSelected = function (kendoEvent) {
var grid = kendoEvent.sender;
var selectedRow = grid.select();
$scope.user = selectedRow;
};
});
这给了我 rowSelected 未在绑定网格更改事件的行上定义。我认为这是因为网格在角度控制器中看不到 rowSelected 事件?