了解有关Telerik平台的更多信息

时间:2014-03-18 03:56:56

标签: javascript telerik

我们来自.NET开发人员并试图找出这个示例应用程序Telerik平台使用Cordova(混合模式)的工作,特别是对于JavaScript。

我们认为代码是处理活动的模型。它是否正确?语法有点奇怪。它看起来与我们所知道的不同。无法弄清楚哪一种是方法,哪一种是财产。

似乎没有关于此类Javascript的更多信息。我在哪里可以找到有关Telerik网站旁边的更多信息。

 /**
 * Activities view model
 */

var app = app || {};

app.Activities = (function () {
    'use strict'

    // Activities model
    var activitiesModel = (function () {

        var activityModel = {

            id: 'Id',
            fields: {
                Text: {
                    field: 'Text',
                    defaultValue: ''
                },
                CreatedAt: {
                    field: 'CreatedAt',
                    defaultValue: new Date()
                },
                Picture: {
                    fields: 'Picture',
                    defaultValue: null
                },
                UserId: {
                    field: 'UserId',
                    defaultValue: null
                },
                Likes: {
                    field: 'Likes',
                    defaultValue: []
                }
            },
            CreatedAtFormatted: function () {

                return app.helper.formatDate(this.get('CreatedAt'));
            },
            PictureUrl: function () {

                return app.helper.resolvePictureUrl(this.get('Picture'));
            },
            User: function () {

                var userId = this.get('UserId');

                var user = $.grep(app.Users.users(), function (e) {
                    return e.Id === userId;
                })[0];

                return user ? {
                    DisplayName: user.DisplayName,
                    PictureUrl: app.helper.resolveProfilePictureUrl(user.Picture)
                } : {
                    DisplayName: 'Anonymous',
                    PictureUrl: app.helper.resolveProfilePictureUrl()
                };
            },
            isVisible: function () {
                var currentUserId = app.Users.currentUser.data.Id;
                var userId = this.get('UserId');

                return currentUserId === userId;
            }
        };

        // Activities data source. The Backend Services dialect of the Kendo UI DataSource component
        // supports filtering, sorting, paging, and CRUD operations.
        var activitiesDataSource = new kendo.data.DataSource({
            type: 'everlive',
            schema: {
                model: activityModel
            },
            transport: {
                // Required by Backend Services
                typeName: 'Activities'
            },
            change: function (e) {

                if (e.items && e.items.length > 0) {
                    $('#no-activities-span').hide();
                } else {
                    $('#no-activities-span').show();
                }
            },
            sort: { field: 'CreatedAt', dir: 'desc' }
        });

        return {
            activities: activitiesDataSource
        };

    }());

    // Activities view model
    var activitiesViewModel = (function () {

        // Navigate to activityView When some activity is selected
        var activitySelected = function (e) {

            app.mobileApp.navigate('views/activityView.html?uid=' + e.data.uid);
        };

        // Navigate to app home
        var navigateHome = function () {

            app.mobileApp.navigate('#welcome');
        };

        // Logout user
        var logout = function () {

            app.helper.logout()
            .then(navigateHome, function (err) {
                app.showError(err.message);
                navigateHome();
            });
        };

        return {
            activities: activitiesModel.activities,
            activitySelected: activitySelected,
            logout: logout
        };

    }());

    return activitiesViewModel;

}());

1 个答案:

答案 0 :(得分:0)

是的,这是javascript对象。它们似乎有点不同,因为它们是使用所谓的功能模式创建的。其中一个原则是模拟私有数据,因为javascript中的所有内容都在全局范围内声明,除了您在函数内声明的内容,这会创建一个新的范围,因此无法从外部看到它。您可以谷歌或者如果您愿意自己记录,我建议您阅读" Javascript:道格拉斯克罗克福德的好零件"因为它包含了几乎所有被认为是javascript最佳实践的东西。