Esempio n. 1
0
    locChged: function() {
        var me = this;
        var view = me.view;
        if (view && view.sign > 0 && view.rendered) { //存在view时才进行广播,对于加载中的可在加载完成后通过调用view.location拿到对应的window.location.href对象,对于销毁的也不需要广播

            var isChanged = view.olChanged(RefChged);
            /**
             * 事件对象
             * @type {Object}
             * @ignore
             */
            var args = {
                location: RefLoc,
                changed: RefChged,
                /**
                 * 阻止向所有的子view传递
                 * @ignore
                 */
                prevent: function() {
                    this.cs = EmptyArr;
                },
                /**
                 * 向特定的子view传递
                 * @param  {Array} c 子view数组
                 * @ignore
                 */
                toChildren: function(c) {
                    c = c || EmptyArr;
                    if (Magix.isString(c)) {
                        c = c.split(',');
                    }
                    this.cs = c;
                }
            };
            if (isChanged) { //检测view所关注的相应的参数是否发生了变化
                //safeExec(view.render,[],view);//如果关注的参数有变化,默认调用render方法
                //否定了这个想法,有时关注的参数有变化,不一定需要调用render方法
                SafeExec(view.locationChange, args, view);
            }
            var cs = args.cs || Magix.keys(me.cM);
            //
            for (var i = 0, j = cs.length, vf; i < j; i++) {
                vf = RefVOM.get(cs[i]);
                if (vf) {
                    vf.locChged();
                }
            }
        }
    }
Esempio n. 2
0
    locChged: function() {
        var me = this;
        var view = me.view;
        if (me.viewInited && view && view.sign > 0) { //存在view时才进行广播,对于加载中的可在加载完成后通过调用view.location拿到对应的window.location.href对象,对于销毁的也不需要广播

            var isChanged = view.olChg(RefChged);
            /**
             * 事件对象
             * @type {Object}
             * @ignore
             */
            var args = {
                location: RefLoc,
                changed: RefChged,
                /**
                 * 阻止向所有的子view传递
                 * @ignore
                 */
                prevent: function() {
                    this.cs = EmptyArr;
                },
                /**
                 * 向特定的子view传递
                 * @param  {Array} c 子view数组
                 * @ignore
                 */
                to: function(c) {
                    //c = c || EmptyArr;
                    if (Magix._s(c)) {
                        c = c.split(',');
                    }
                    this.cs = c || EmptyArr;
                }
            };
            if (isChanged) { //检测view所关注的相应的参数是否发生了变化
                view.render(args);
            }
            var cs = args.cs || Magix.keys(me.cM);
            //
            for (var i = 0, j = cs.length, vf; i < j; i++) {
                vf = RefVOM.get(cs[i]);
                if (vf) {
                    vf.locChged();
                }
            }
        }
    }