Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
ember.js,页面加载后如何显示数据?_Ember.js_Ember Data - Fatal编程技术网

ember.js,页面加载后如何显示数据?

ember.js,页面加载后如何显示数据?,ember.js,ember-data,Ember.js,Ember Data,我对emberjs很陌生,但我真的很想了解更多。 我正在用余烬和余烬数据构建一个webapp 因此,问题如下。我有一个页面(users),它应该显示用户在models/users.js中定义的所有对象。现在,据我所知,页面在加载把手{{outlet}中的任何数据之前等待答案(在我的例子中是RESTAPI),我想知道是否可以加载页面和(图像、css等)并显示数据 ==my users.hbs {{#each user in controller}} <li>{{user.name}}

我对emberjs很陌生,但我真的很想了解更多。 我正在用余烬和余烬数据构建一个webapp

因此,问题如下。我有一个页面(users),它应该显示用户在models/users.js中定义的所有对象。现在,据我所知,页面在加载把手{{outlet}中的任何数据之前等待答案(在我的例子中是RESTAPI),我想知道是否可以加载页面和(图像、css等)并显示数据

==my users.hbs
{{#each user in controller}}
 <li>{{user.name}} - {{user.email}}</li>
{{else}}
 <li>no users… :-(</li>
{{/each}}

==usersRoute.js
    App.UsersRoute = Ember.Route.extend({
    model: function(){
        return $.getJSON('/REST_API/users').then(function(data){
            return data.body;
        });
    }  
});

==usersController.js
App.UsersController = Ember.ArrayController.extend({
   sortProperties: ['name'],
   sortAscending: true // false = descending
});

==user.js (model)
App.User = DS.Model.extend({
    name         : DS.attr(),
    email        : DS.attr()
});

==store
App.ApplicationAdapter = DS.FixtureAdapter;
App.store = DS.Store.extend()

==router
App.Router.map(function(){
    this.resource('users', function(){
        this.resource('user', { path:'/:user_id' }, function(){
            this.route('edit');
        });
        this.route('create');
    });
});
==my users.hbs
{{#控制器中的每个用户}
  • {{user.name}}-{{user.email}
  • {{else}
  • 没有用户…:-(
  • {{/每个}} ==usersRoute.js App.UsersRoute=Ember.Route.extend({ 模型:函数(){ 返回$.getJSON('/REST\u API/users')。然后(函数(数据){ 返回数据.body; }); } }); ==usersController.js App.UsersController=Ember.ArrayController.extend({ sortProperties:['name'], 排序设置:真//假=递减 }); ==user.js(模型) App.User=DS.Model.extend({ 名称:DS.attr(), 电子邮件:DS.attr() }); ==商店 App.ApplicationAdapter=DS.FixtureAdapter; App.store=DS.store.extend() ==路由器 App.Router.map(函数(){ this.resource('users',function()){ this.resource('user',{path:'/:user_id'},function(){ 此.route('edit'); }); 这条路线(“创建”); }); });
    我想做的是在获取数据的同时加载页面,然后放入控制器


    谢谢。

    模型方法将阻止渲染,直到承诺得到解决。您可以使用
    设置控制器
    来渲染模板,当从ajax获取数据时,
    每个
    都将重新渲染,因为我们使用
    控制器.set('model',data.body);
    进行了设置

    usersRoute.js

    App.UsersRoute = Ember.Route.extend({
        setupController: function(controller){
            $.getJSON('/REST_API/users').then(function(data){
                // ajax callback is detached from runloop, so we attach again
                Ember.run(function() {
                    controller.set('model', data.body);
                });              
            });
        }
    });
    
    {{#each user in model}}
     <li>{{user.name}} - {{user.email}}</li>
    {{else}}
     <li>no users… :-(</li>
    {{/each}}
    
    用户。hbs

    App.UsersRoute = Ember.Route.extend({
        setupController: function(controller){
            $.getJSON('/REST_API/users').then(function(data){
                // ajax callback is detached from runloop, so we attach again
                Ember.run(function() {
                    controller.set('model', data.body);
                });              
            });
        }
    });
    
    {{#each user in model}}
     <li>{{user.name}} - {{user.email}}</li>
    {{else}}
     <li>no users… :-(</li>
    {{/each}}
    
    {{{#模型中的每个用户}
    
  • {{user.name}}-{{user.email}
  • {{else}
  • 没有用户…:-(
  • {{/每个}}