0

以下代码似乎不起作用:

//The HTML
<div class="content">
    <script type="text/x-handlebars" data-template-name="application">
      <h1>Application</h1>
      {{outlet}}
    </script>

    <script type="text/x-handlebars" data-template-name="user-list">
      <h2>Users</h2>
      <ul>
      {{#each App.userController}}
        <li>{{name}}</li>
      {{/each}}
      </ul>
    </script>
</div>

//The JS
var App = Ember.Application.create();

App.ApplicationController = Ember.Controller.extend();
App.ApplicationView = Ember.View.extend({
    templateName: 'application'
});

App.User = Ember.Object.extend({
    name: null,
    xs:0,
    turnover:0,
    surveys:0
});

App.UsersView = Ember.View.extend({
    templateName: 'user-list'
});

App.userController = Ember.ArrayController.create({
    content: [],

    init: function() {
        var me = this;

        $.getJSON('http://localhost:8000/', function(data) {

            me.set('content', []);

            $(data).each(function(index, value) {
                var t = App.User.create({
                    name: value.name,
                    xs: value.xs,
                    turnover: value.turnover,
                    surveys: value.surveys
                });

                me.pushObject(t);
            });
        });
    }
});

App.router = Ember.Router.create({
    enableLogging: true,

    root: Ember.Route.extend({
        index: Ember.Route.extend({
            route:'/',
            connectOutlets:function(router) {
                return router.get('applicationController').connectOutlet({
                    viewClass: App.UsersView,
                    controller: App.userController
                });
            }
        }),
    })
});

App.initialize(App.router);

userController 正在正确获取数据。我认为问题在于观点。<h2>Users</h2>甚至没有显示在页面上(虽然应用程序是)

4

1 回答 1

0

在过去的几个月里,Ember 版本之间的版本差异一直难以理解。我通常会打折 1 月之前发布的代码,除非我知道它不受重大更改的影响。

这是 RC1 的示例,截至 2013 年 3 月 12 日工作:http: //jsfiddle.net/nrionfx/Se2Bw/1/

(它在 Coffeescript 中——我主要编写 Ruby 并发现它更具可读性......)

App.UsersController = Em.ArrayController.extend
    title: 'users controller'
    content: []

App.UsersRoute = Em.Route.extend
    enter: ->
        console?.log('users route')
    setupController: (controller) ->
        #Do your AJAX call here and set the content array upon success
        ct= [
            App.User.create({id: 1, name: 'Bill', xs:0}),
            App.User.create({id: 2, name: 'Bob', xs:0}),
        ]
        controller.set('content', ct)
        #END AJAX

App.Router.map (match) ->
    @route "users", path: "/"
于 2013-03-12T20:34:47.030 回答