我的页面上绑定了一个JavaScript数组,它有一个KendoUI网格。当点击网格中的一行时,行更改事件触发,我抓取表示该行的对象。我现在想用AngularJS的模板绑定到该模型是这样的...如何将页面上已有的JavaScript对象传递给AngularJS模板
<div ng-app ng-model="currentRecord">
{{FirstName}} - {{Surname}}
</div>
两个名字和姓氏是该行的对象的属性。所以我想我要问的是如何从AngularJs控制器的外部设置模型?
我只是选择Angular,所以我问的可能是一个坏主意,如果是这种情况,请让我知道为什么。
更新
按照彼得的答案我已经试过用“角剑道”
我使用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>
我想要的是,当选择一行时,该对象的firstname属性显示在结果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事件?
JSON是一种将JavaScript对象表示为字符串的协议。也许你的意思是JavaScript数组和JavaScript对象? – 2013-06-18 11:21:41
对不起,我喜欢。 – Gavin