Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Templates 刷新页面数据后Ember.js消失_Templates_Ember.js - Fatal编程技术网

Templates 刷新页面数据后Ember.js消失

Templates 刷新页面数据后Ember.js消失,templates,ember.js,Templates,Ember.js,我对余烬有点基本问题 这是一个应用程序:(点击测试-像一个魔咒一样工作,因为模型在内存中-加载在索引页中) 但是,当您尝试直接进行page#test时,所有数据都会消失(这很糟糕——不会触发索引路由和加载模型)。我明白这个问题,但对我没有帮助 我需要在其他模板中使用带有模型的模板-我使用{{render index}},但我不确定使用什么以及如何使用。请帮帮我,我被卡住了。我不太清楚你到底想做什么 如果只是尝试将相同的模型数据用于不同的管线(和模板),则可以在管线定义中将模型数据显式设置为相同:

我对余烬有点基本问题

这是一个应用程序:(点击测试-像一个魔咒一样工作,因为模型在内存中-加载在索引页中)

但是,当您尝试直接进行page#test时,所有数据都会消失(这很糟糕——不会触发索引路由和加载模型)。我明白这个问题,但对我没有帮助


我需要在其他模板中使用带有模型的模板-我使用{{render index}},但我不确定使用什么以及如何使用。请帮帮我,我被卡住了。

我不太清楚你到底想做什么

如果只是尝试将相同的模型数据用于不同的管线(和模板),则可以在管线定义中将模型数据显式设置为相同:

App = Ember.Application.create();

App.Router.map(function() {
   this.route('test');
});

var myModelData = ['red', 'yellow', 'blue'];

App.IndexRoute = Ember.Route.extend({
  model : function(){
    return myModelData;
  }  
});

App.TestRoute = Ember.Route.extend({
  model : function(){
    return myModelData;
  }   
});
下面是一个正在工作的JSBin示例:

编辑:可能有帮助的其他信息

好的,再尝试一下=)当您直接导航到
test
页面时,没有数据,因为TestRoute正在使用尚未加载的IndexRoute中的模型数据。您可以通过从ApplicationRoute初始化IndexController和模型来强制创建IndexController和模型,当您第一次转到应用程序中的任何路由时,总是会调用ApplicationRoute

首先,您必须生成控制器,因为它还不存在

this.generateController('index');
然后可以获取控制器并设置其模型数据:

this.controllerFor('index').set('model', ['red','green','blue']);
这是一把可以工作的小提琴,我这次确实测试了它,以确保当你直接进入
#/test
时它能工作。我从前面的示例中删除了实际不需要的额外路线和内容


谢谢,这正是我想要的,但我认为余烬有另一种方法可以做到这一点,但这是不够的。我不确定这是否是你想要的,因为这对我来说似乎是一个奇怪的用例,但也许它会有所帮助!嗨,这正是我想要的,我使用render是因为我想在更多的模板中使用模型来呈现模板,就像一个包含来自服务器的json数据的组件一样。你的第二个例子和我的例子有同样的问题——当你直接尝试测试链接时,它不会呈现模型。哈,你是对的。直接进行测试时,索引路由尚未加载,因此测试路由没有要显示的模型数据。我用我认为有效的解决方案再次更新了答案。让我知道它是否满足您的需要。最后一件事是——我如何使用
this.controllerFor('index').set('model',['red','green','blue')实现干代码
如何更改
['red'、'green'、'blue']
以从测试路径加载模型,我希望您理解我的要求:)