我嘗試從我的服務器創建一個JSON並在客戶端角度檢索JSON。但我的JSON是一個函數。JSON問題來存儲一個函數並刪除引號
我在服務器上創建這個JSON:
var header = {};
var editor = 'function (container, options) {jsdd.appendTo(container); $compile(editor)($scope); editor.css("visibility", "visible")};';
header['editor'] = editor;
在客戶端我找回我的JSON是這樣的:
editor: "function (container, options) {jsdd.appendTo(container); $compile(editor)($scope); editor.css("visibility", "visible")};"
但是它不工作,因爲我想去掉引號並得到這個:
editor: function (container, options) {jsdd.appendTo(container); $compile(editor)($scope); editor.css("visibility", "visible")};
我該怎麼做?
更新
結果我嘗試從服務器發送的JSON獲得的是:
{
title: "category",
field: "category",
editor: function (container, options) {
var editor = $('<input kendo-drop-down-list required k-data-text-field="\'valueen\'" k-data-value-field="\'id\'" k-data-source=\"mapDSource.get(\'category\')\" data-bind="value:' + options.field + '"/>')
.appendTo(container);
$compile(editor)($scope);
editor.css("visibility", "visible");
}
, template: "{{getName(dataItem, 'category', 'id', 'valueen')}}"
, type: 'string',
editable: true,
width: 250
},
{
title: 'keyen',
type: 'string',
field: 'keyen',
editable: true,
validation: {
required: true
}, ....
所有作品除外編輯器參數是一個函數,所以我我在做以下工作:
var table = {};
table.type = "referential";
gridService.loadTable(table).success(function (data) {
if(data.header)
{
var i;
for(i in data.header)
{
var editor = data.header[i]['editor'];
if(editor)
{
data.header[i]['editor'] = new Function("container", "options", editor);
}
}
}
....
什麼是您需要在json中將函數作爲字符串傳遞的用例?看起來像設計缺陷 – charlietfl
我正在使用sails.js並在我的服務器上設計我的模型。我添加了一些自定義參數,如下拉列表...然後我在服務器中構建我的網格配置並將其發送到我的客戶端。 json裝載了Kendo UI網格和所有作品。但是對於編輯部分來說,並不是因爲編輯器是一個函數。我也想創建在json中執行的函數。看到這裏:http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#configuration-columns.editor – ameilland