煎茶触摸2:属于关联关联回调的使用?(Sencha Touch 2: belongsTo assoc

2019-10-18 06:31发布

我所说的属于关联ASSOCATION产生的吸气作用:

        token.getUser({
            callback: function(user, operation) {
                console.info('getUser callback');
                Ext.Viewport.unmask();
                console.dir(operation);
            },
            failure: function(user, operation) {
                console.info('getUser failure');
            },
            success: function(user) {
                console.info('getUser success');
            }
        });

我的控制台显示以下内容:

getUser success Auth.js:74
getUser failure Auth.js:69
getUser callback Auth.js:64
undefined

可有人请赐教如何工作的? 该文档没有太大帮助。

Answer 1:

最肯定的错误。 看的代码createGetter方法:

        if (options.reload === true || instance === undefined) {
            ...
        } else {
            args = [instance];
            scope = scope || model;

            Ext.callback(options, scope, args);
            Ext.callback(options.success, scope, args);
            Ext.callback(options.failure, scope, args);
            Ext.callback(options.callback, scope, args);

            return instance;
        }

如果关联的模型已经加载,所有的回调都不加区别地调用。

您可以使用以下解决方法,因为我们看到的是,第二个参数是不要求高速缓存的实例:

token.getUser({
    callback: function(user, operation) {

        // independent of success

        if (operation) {
            if (operation.wasSuccessful()) {
                // successful load
            } else {
                // failed load
            }
        } else {
            // retrieved from the cache (indicates previous success)
        }
    }
});


文章来源: Sencha Touch 2: belongsTo association callback usage?