Я пытаюсь получить выбранные строки сетки и назначить их переменной. В демонстрации Кендо выбранные строки выводятся на консоль:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Kendo UI Snippet</title>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.1017/styles/kendo.common.min.css"/>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.1017/styles/kendo.rtl.min.css"/>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.1017/styles/kendo.silver.min.css"/>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.1017/styles/kendo.mobile.all.min.css"/>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2018.3.1017/js/kendo.all.min.js"></script>
</head>
<body>
<div id="grid"></div>
<script>
$("#grid").kendoGrid({
columns: [
{ field: "name" },
{ field: "age" }
],
dataSource: {
data: [
{ id: 1, name: "Jane Doe", age: 30 },
{ id: 2, name: "John Doe", age: 33},
{ id: 3, name: "Jim Doe", age: 30 },
{ id: 4, name: "Jack Doe", age: 33}
],
schema: {
model: { id: "id" }
}
},
change: function(e) {
console.log(this.selectedKeyNames());
},
selectable: "multiple, row",
persistSelection: true
});
</script>
</body>
</html>
Это именно то, что мне нужно, за исключением того факта, что я хочу назначить выбранные строки из события изменения переменной.
change: function (e) {
row = this.selectedKeyNames();
`enter code here` },
Я определил 'row' как var row; внутри контроллера (первая строка вверху страницы:
var app = angular.module('collection-app', ['kendo.directives'])
.controller('CollectionController', ['$scope', '$http', "$window", function ($scope, $http, $window) {
var self = this;
var dataUrl = UrlParams.type != null ? UrlParams.Collection + "?type=" + UrlParams.type : UrlParams.Collection;
var viewUrl = UrlParams.view != null ? UrlParams.Collection + "/Views/" + UrlParams.view : UrlParams.Collection + "/Views/Default";
var row;
Но когда я пытаюсь опубликовать данные, я получаю сообщение "undefined".
var dataArray = { "header": "itemsSelect", "rowData": row };
$window.parent.postMessage(dataArray, "*");
Это потому, что я не могу присвоить значения в gridOptions?