dojo 1.2.3和ZF1-FilteringSelect不使用自定义存储

问题描述

我想使用Custom Store进行FilteringSelect(有3个字段:id,name,search_me)
标准商店按名称搜索,并显示名称
我希望自定义商店通过search_me搜索并显示名称

我遇到了问题:FilteringSelect不使用自定义商店

SomeForm.php

$this->createElement(
    'SomeElement','item_id',array(
        'dojo' => 'searchMeStore',//      'dojoStore' => 'zlib.data.ReadStoreWithExtendedSearch',//      'dojoStore' => 'dojo.data.ItemFileReadStore','dojoType' => 'zlib.Form.ExtendedFilteringSelect','storeUrl'     => '/items.json','autocomplete' => 'false','style'        => 'width:33em',)
);

查看文件

<script>
    dojo.require('zlib.data.ReadStoreWithExtendedSearch');
    if (!dojo.getObject('searchMeStore')) {
        zlib.data.ReadStoreWithExtendedSearch.prototype._getItemByIdentity = function(/* Object */ identity){
            console.log('ReadStoreWithExtendedSearch._getItemByIdentity');
            //  summary:
            //  Internal function to look an item up by its identity map.
            var item = null;
            if(this._itemsByIdentity){
                item = this._itemsByIdentity[identity];
            }else{
                item = this._arrayOfAllItems[identity];
            }
            if(item === undefined){
                item = null;
            }
            return item; // Object
        }

        var searchMeStore = new wzib.data.ReadStoreWithExtendedSearch({url: ''});

        dojo.setObject('searchMeStore',searchMeStore);
    }
</script>

zlib.data.ReadStoreWithExtendedSearch

dojo.provide('zlib.data.ReadStoreWithExtendedSearch');

dojo.require('dojo.data.ItemFileReadStore');

dojo.declare(
    'zlib.data.ReadStoreWithExtendedSearch',[dojo.data.ItemFileReadStore],{
        constructor: function(/* Object */ keywordParameters){
            console.log('ReadStoreWithExtendedSearch.constructor');

            //  summary: constructor
            //  keywordParameters: {url: String}
            //  keywordParameters: {data: jsonObject}
            //  keywordParameters: {typeMap: object)
            //      The structure of the typeMap object is as follows:
            //      {
            //          type0: function || object,//          type1: function || object,//          ...
            //          typeN: function || object
            //      }
            //      Where if it is a function,it is assumed to be an object constructor that takes the
            //      value of _value as the initialization parameters.  If it is an object,then it is assumed
            //      to be an object of general form:
            //      {
            //          type: function,//constructor.
            //          deserialize:    function(value) //The function that parses the value and constructs the object defined by type appropriately.
            //      }

            this._arrayOfAllItems = [];
            this._arrayOfTopLevelItems = [];
            this._loadFinished = false;
            this._jsonFileUrl = keywordParameters.url;
            this._jsonData = keywordParameters.data;
            this._datatypeMap = keywordParameters.typeMap || {};
            if(!this._datatypeMap['Date']){
                //If no default mapping for dates,then set this as default.
                //We use the dojo.date.stamp here because the ISO format is the 'dojo way'
                //of generically representing dates.
                this._datatypeMap['Date'] = {
                    type: Date,deserialize: function(value){
                        return dojo.date.stamp.fromISOString(value);
                    }
                };
            }
            this._features = {'dojo.data.api.Read':true,'dojo.data.api.Identity':true};
            this._itemsByIdentity = null;
            this._storeRefPropName = "_S";  // Default name for the store reference to attach to every item.
            this._itemNumPropName = "_0"; // Default Item Id for isItem to attach to every item.
            this._rootItemPropName = "_RI"; // Default Item Id for isItem to attach to every item.
            this._reverseRefMap = "_RRM"; // Default attribute for constructing a reverse reference map for use with reference integrity
            this._loadInProgress = false;   //Got to track the initial load to prevent duelling loads of the dataset.
            this._queuedFetches = [];
            if(keywordParameters.urlPreventCache !== undefined){
                this.urlPreventCache = keywordParameters.urlPreventCache?true:false;
            }
            if(keywordParameters.clearOnClose){
                this.clearOnClose = true;
            }
        },_getItemByIdentity: function(/* Object */ identity){
            console.log('ReadStoreWithExtendedSearch._getItemByIdentity');

            //  summary:
            //  Internal function to look an item up by its identity map.
            var item = null;
            if(this._itemsByIdentity){
                item = this._itemsByIdentity[identity];
            }else{
                item = this._arrayOfAllItems[identity];
            }
            if(item === undefined){
                item = null;
            }
            return item; // Object
        },}
);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...