Ajax 使用余烬数据/数据存储将外部数据加载到余烬模板中

Ajax 使用余烬数据/数据存储将外部数据加载到余烬模板中,ajax,json,ember.js,handlebars.js,ember-data,Ajax,Json,Ember.js,Handlebars.js,Ember Data,下面是我要做的: 发出ajax请求以从PHP脚本检索JSON数据 将该信息插入到数据存储模型中 将这些模型存储在控制器中 使用带有把手模板的{{#each}显示信息 余烬数据是否有内置的数据检索方式?若否,在哪里? 是否应该实现AJAX请求 将JSON数据插入DS模型的最佳方式是什么 然后用控制器同步模型的最佳方法是什么 任何实现所有4个步骤的示例都会非常有用,因为我似乎找不到任何示例。发出AJAX请求 // Find all pets. var pets = App.Pet.find(

下面是我要做的:

  • 发出ajax请求以从PHP脚本检索JSON数据
  • 将该信息插入到数据存储模型中
  • 将这些模型存储在控制器中
  • 使用带有把手模板的{{#each}显示信息

    • 余烬数据是否有内置的数据检索方式?若否,在哪里? 是否应该实现AJAX请求

    • 将JSON数据插入DS模型的最佳方式是什么

    • 然后用控制器同步模型的最佳方法是什么



    任何实现所有4个步骤的示例都会非常有用,因为我似乎找不到任何示例。

    发出AJAX请求

    // Find all pets.
    var pets = App.Pet.find();
    
    // Find pet with ID of 1.
    var pet = App.Pet.find(1);
    
    进入数据存储模型

    上面的
    pets
    将是一个包含许多
    App.Pet
    型号的DS.RecordArray,而
    Pet
    只是一个
    App.Pet

    存储在控制器中

    App.IndexRoute = Ember.Route.extend({
       model: function() {
           return App.Pet.find(4);
       } 
    });
    
    路由器用于设置控制器,因此我们在这里指定
    IndexController
    应包含一个ID为4的
    App.Pet
    。这当然可以是动态的。由于您的控制器仅代表一个型号,因此它应该是
    ObjectController
    类型,但如果它用于存储多个宠物,那么它应该是
    ArrayController
    类型

    通过指定模型,您可以在
    IndexController
    和索引视图(
    data template name=“index”
    )中访问该模型。这是因为当您进入索引路由时,
    IndexController
    被定位/实例化,
    IndexView
    被实例化并放置到DOM中,所有这些都是在咨询
    IndexRoute
    以设置控制器之后进行的

    现在,您可以在模板中执行类似操作(尽管不需要
    model.
    ):
    {{{model.name}
    ,这将获得您宠物的名字

    使用#每个

    使用上述代码的修改版本查找您的所有宠物,但返回所有宠物。请记住,这是通过不对
    find
    方法指定任何参数来实现的:

    App.IndexRoute = Ember.Route.extend({
       model: function() {
           return App.Pet.find();
       }
    });
    
    现在,我们可以循环遍历索引模板中的所有宠物。虽然有很多方法可以循环,比如包括
    内容。
    /
    模型。
    ,不包括
    。内容
    /
    模型
    ,使用
    控制器
    ,等等,但这是不必要的,但这是另一天的事。目前最重要的是,这将对您有效,并且是最直观的:

    {{#each pet in controller}}
        {{pet.name}}
    {{/each}}
    
    如果你愿意的话,我会为此准备一个JSFIDLE。请让我知道

    问题

    余烬数据是否有内置的数据检索方式?若否,在哪里? 是否应该实现AJAX请求

    是的,这就是我所知道的

    将JSON数据插入DS模型的最佳方式是什么

    按照上面的例子使用余烬数据

    然后用控制器同步模型的最佳方法是什么


    在适当的路径中使用
    模型
    钩子指定控制器代表的模型。

    发出AJAX请求

    // Find all pets.
    var pets = App.Pet.find();
    
    // Find pet with ID of 1.
    var pet = App.Pet.find(1);
    
    进入数据存储模型

    上面的
    pets
    将是一个包含许多
    App.Pet
    型号的DS.RecordArray,而
    Pet
    只是一个
    App.Pet

    存储在控制器中

    App.IndexRoute = Ember.Route.extend({
       model: function() {
           return App.Pet.find(4);
       } 
    });
    
    路由器用于设置控制器,因此我们在这里指定
    IndexController
    应包含一个ID为4的
    App.Pet
    。这当然可以是动态的。由于您的控制器仅代表一个型号,因此它应该是
    ObjectController
    类型,但如果它用于存储多个宠物,那么它应该是
    ArrayController
    类型

    通过指定模型,您可以在
    IndexController
    和索引视图(
    data template name=“index”
    )中访问该模型。这是因为当您进入索引路由时,
    IndexController
    被定位/实例化,
    IndexView
    被实例化并放置到DOM中,所有这些都是在咨询
    IndexRoute
    以设置控制器之后进行的

    现在,您可以在模板中执行类似操作(尽管不需要
    model.
    ):
    {{{model.name}
    ,这将获得您宠物的名字

    使用#每个

    使用上述代码的修改版本查找您的所有宠物,但返回所有宠物。请记住,这是通过不对
    find
    方法指定任何参数来实现的:

    App.IndexRoute = Ember.Route.extend({
       model: function() {
           return App.Pet.find();
       }
    });
    
    现在,我们可以循环遍历索引模板中的所有宠物。虽然有很多方法可以循环,比如包括
    内容。
    /
    模型。
    ,不包括
    。内容
    /
    模型
    ,使用
    控制器
    ,等等,但这是不必要的,但这是另一天的事。目前最重要的是,这将对您有效,并且是最直观的:

    {{#each pet in controller}}
        {{pet.name}}
    {{/each}}
    
    如果你愿意的话,我会为此准备一个JSFIDLE。请让我知道

    问题

    余烬数据是否有内置的数据检索方式?若否,在哪里? 是否应该实现AJAX请求

    是的,这就是我所知道的

    将JSON数据插入DS模型的最佳方式是什么

    按照上面的例子使用余烬数据

    然后用控制器同步模型的最佳方法是什么

    在适当的路径中使用
    模型
    钩子指定控制器代表的模型。

    正如我在评论中所说,这个问题一次会问很多问题,所以接下来,这里有一个公关方面的工作