Kendo DataSource .slice和模板问题

时间:2015-01-25 18:36:07

标签: angularjs kendo-ui

我一直试图解决这个问题几天但没有任何成功。 我有一个滚动视图集,其中包含从服务器获取的数据源。

首先,在jQuery that._pristineData = data.slice(0);中的以下行中成功请求后,它一直崩溃,因为data是一个对象,而不是一个数组。

经过一番搜索后,我找到了一个答案,表示在方括号中返回架构的响应,所以它基本上是一个数组。

这确实解决了这个问题,但现在它正在其他地方崩溃,所以也许这不是解决问题的正确方法。

我现在收到以下错误:VM上的Uncaught TypeError: undefined has no properties并查看导致错误的代码给我这个:

(function(data
/**/) {
var o,e=kendo.htmlEncode;with(data){o='<div><p>Title: '+e( data.title )+'</p><p>Street: '+e( data.street )+'</p></div>';}return o;
})

我的模板有问题吗? 是否可以将响应作为数组返回导致此问题? 我该如何解决这个问题?

scrollview

<div>
    <kendo-mobile-scroll-view id="scroll" k-data-source="data" k-template="template" >
    </kendo-mobile-scroll-view>
</div>

datasource

$scope.data = new kendo.data.DataSource({
    transport: {
        read: {
            url: $scope.link,
            dataType: "json"
        }
    },
    schema: {
        data: function(data) {
            return [data];
        }
    }
});

template

$scope.template = "<div><p>Title: #: data.title #</p><p>Street: #: data.street #</p></div>";

1 个答案:

答案 0 :(得分:3)

肯定是错误的回应。我尝试了类似于你的例子,一切正常。看一下demo Demo

来自服务器的响应必须如下:

[{"title":"title1","street":"street1"},{"title":"title2","street":"street2"}]