Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Routes App.dash.toggle(名称); var selected=App.dash.get('selected'); log('transitiono','selected:',selected); 路由器。转换为('dash'{ 已选:已选 }); }_Routes_Ember.js - Fatal编程技术网

Routes App.dash.toggle(名称); var selected=App.dash.get('selected'); log('transitiono','selected:',selected); 路由器。转换为('dash'{ 已选:已选 }); }

Routes App.dash.toggle(名称); var selected=App.dash.get('selected'); log('transitiono','selected:',selected); 路由器。转换为('dash'{ 已选:已选 }); },routes,ember.js,Routes,Ember.js,App.dash.toggle(名称); var selected=App.dash.get('selected'); log('transitiono','selected:',selected); 路由器。转换为('dash'{ 已选:已选 }); }, 事件转换:{ 切换:“短跑” } }) }) }); App.initialize(); 在items功能中,调用items.clear(),然后返回items。这是你真正想要的吗?是的,这就是你想要的。项目功能应清除当前选择/现在显示的所

App.dash.toggle(名称); var selected=App.dash.get('selected'); log('transitiono','selected:',selected); 路由器。转换为('dash'{ 已选:已选 }); }, 事件转换:{ 切换:“短跑” } }) }) }); App.initialize();
items
功能中,调用
items.clear()
,然后返回items。这是你真正想要的吗?是的,这就是你想要的。项目功能应清除当前选择/现在显示的所有项目。此.\u项将填充在watchItems观察程序(异步)中。我试图靠近路由器入门应用程序。Shoe.find method。谢谢!watchItems().observes('selected.@each','store.@each')是问题所在。从概念上讲,我将“selected”视为一个属性,但它是一个数组,这就是观察不起作用的原因。
#/dash/foo,bar 
#/dash/foo,bar,ted
<a {{action toggle name href=true}}>{{name}}</a>
App.dash = Ember.Object.create({
    FIXTURE: [App.Item.create({
        name: 'foo',
        detail: 'Some very interesting foo'
    }),App.Item.create({
        name: 'bar',
        detail: 'Bar is the root of all stuff'
    }),App.Item.create({
        name: 'ted',
        detail: 'Ted is not my name'
    })],
    store: Ember.A(),
    selected: Ember.A(),
    _items: Ember.A(),
    watchItems: function () {
        var items = this._items;
        var store = this.store;
        items.clear();
        this.get('selected').forEach(function (name) {
            var item = store.findProperty('name', name);
            items.pushObject(item);
        });
    }.observes('selected', 'store'),
    toggle: function (name) {
        var selected = this.get('selected');
        var index = selected.indexOf(name);
        if (index !== -1) {
            selected.removeAt(index);
        } else {
            selected.push(name);
        }
        this.set('selected', selected);
    },
    fetch: function () {
        var FIXTURE = this.FIXTURE;
        var store = this.store;
        if (store.length == 0) {
            Ember.run.later(function () {
                FIXTURE.forEach(function (item) {
                    store.pushObject(item);
                });
            }, 2000);
        }
    },        
    items: function (selected) {
        var items = this._items;
        items.clear();
        if (Ember.isArray(selected)) {
            this.set('selected', selected);
        } else {
            this.set('selected', []);
        }
        this.fetch();
        return items;
    }
});
 App.Router = Ember.Router.extend({
    root: Ember.Route.extend({
        index: Ember.Route.extend({
            route: '/',
            redirectsTo: 'dash'
        }),
        dash: Ember.Route.extend({
            route: '/dash/:selected',
            connectOutlets: function (router, context) {
                var selected = context && context.selected;
                var dashItems = App.dash.items(selected);
                router.get('applicationController').connectOutlet('dash', dashItems);
            },
            deserialize: function (router, params) {
                if (params.selected !== 'undefined') {
                    return params.selected;
                }
            },
            serialize: function (router, context) {
                var selected = App.dash.get('selected');
                var hash = {
                    selected: selected
                };
                return hash;
            },
            toggle: function (router, event) {
                event.preventDefault();
                event.stopPropagation();
                var name = event.context;
                App.dash.toggle(name);
                var selected = App.dash.get('selected');
                router.transitionTo('dash', {
                    selected: selected
                });
            },
            eventTransitions: {
                toggle: 'dash'
            }
        })
    })
});