使用 ember.js 为非动态路由重新加载模型的正确方法是什么? [英] What is the right approach to reload the model for a non-dynamic route with ember.js?
问题描述
我有一个简单的模型数组,我将其显示在列表中(路径:/things).模型从 REST-API 加载.
在嵌套路由中,我具有添加新模型的功能.(路径:/东西/添加).新模型通过 REST-API 持久化.
添加新模型后,我执行 transitionTo('things')
以返回列表.
按照 ember 文档,通过使用transitionTo",既不会为非动态路由调用 model
钩子和 setupController
-Hook.
使用 transitionTo
时,在非动态路由上刷新模型的正确方法是什么?或者:在不使用 transitionTo
的情况下在非动态路由上重新加载模型的最佳方法是什么?
app.js
//应用初始化App = Ember.Application.create();//路线App.Router.map(function() {this.resource('东西', function() {this.route('添加');})});App.IndexRoute = Ember.Route.extend({重定向:函数(){this.transitionTo('东西');}});App.ThingsRoute = Ember.Route.extend({模型:函数(参数){返回 App.Thing.findAll();},});App.ThingsAddRoute = Em.Route.extend({设置控制器:功能(控制器){controller.set('content', App.Thing.create());}});//楷模App.Thing = Ember.Object.extend({名称:空,描述:空});App.Thing.reopenClass({查找全部:函数(){变量结果;$.ajax({url : 'http://path/app_dev.php/api/things',数据类型:'json',异步:假,成功:功能(数据){结果 = data.things;}});返回结果;},保存:功能(内容){控制台日志(内容);$.ajax({类型:'帖子',url : 'http://path/app_dev.php/api/things',数据 : {名称:内容名称,描述:内容.描述},异步:假});}});//控制器App.ThingsAddController = Em.ObjectController.extend({添加:函数(){App.Thing.save(this.content);this.transitionToRoute('东西');},取消添加:函数(){this.transitionToRoute('东西');}});
index.html
<script type="text/x-handlebars" data-template-name="things/add"><div class="span12"><form class="form-horizontal"><字段集><div id="图例"><legend class="">添加新内容</legend>
<!-- 名称--><div class="control-group"><label class="control-label" for="name">Name</label><div class="控件">{{view Ember.TextField id="name" placeholder="输入姓名" valueBinding="name"}}
<!-- 说明--><div class="control-group"><label class="control-label" for="description">Description</label><div class="控件">{{view Ember.TextArea id="description" placeholder="输入描述" valueBinding="description"}}