- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我一直在对此进行大量修补,但似乎无法使其正常工作。我希望在等待我的模型 promise 返回时显示我的加载模板。
我的理解是,默认情况下,如果我有 app/templates/loading.hbs
,这个模板将在所有路由中呈现。然而,即使我在路线之间切换时使用了该模板,旧路线仍然会显示,直到模型返回,此时我的液体火力转换发生,您将被带到下一条路线。
我已经尝试过为每条路线创建嵌套加载模板的各种版本,尝试为加载模板的每条路线创建子路线,甚至弄乱了可用的 beforeModel/afterModel 方法,但我没有取得任何进展。这是我在启动之前要跨越的最后一个障碍,我很困惑为什么我不能让它工作。这是我认为相关的一堆代码。
注意:我使用的是 Ember CLI 和 Liquid Fire。我的数据也暂时从 Ember 服务返回到模型。
路由器
Router.map(function() {
this.route('reviews', function() {
this.route('index', {path: '/'});
this.route('review', {path: '/:review_id'});
});
this.route('movies');
this.route('about');
});
app/template/loading.hbs
<div class="content-container">
<h1>Ish be loading</h1>
</div>
最慢模型路线
export default Ember.Route.extend({
activate() {
this._super();
$("html,body").animate({scrollTop:0},"fast");
$("body").addClass('movies');
},
deactivate() {
$("body").removeClass('movies');
},
model() {
const movies = this.get('movies');
return movies.getMoviesInAlphOrder();
},
afterModel: function() {
$(document).attr('title', 'Slasher Obscura - Movie Database');
},
movies: Ember.inject.service()
});
app.js
App = Ember.Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver,
...
});
loadInitializers(App, config.modulePrefix);
服务方式
sortReviewsByDateDesc(arr) {
return arr.slice().sort(function (a, b) {
return a.review.date > b.review.date ? -1 : 1;
});
},
getSetAmountOfMovies(num, arr) {
const movieList = arr ? null : this.getMovies();
const trimmedList = arr ? arr.slice(0, num) : movieList.slice(0, num);
return trimmedList;
},
setFirstReviewToFeatured(arr) {
arr[0].isFeatured = true;
return arr;
},
getLatestReviews(num) {
const movieList = this.getMovies();
const reviewList = movieList.filterBy('review');
const indexList = this.sortReviewsByDateDesc(reviewList);
const latestList = this.getSetAmountOfMovies(num, indexList);
return this.setFirstReviewToFeatured(latestList);
},
getMoviesInAlphOrder() {
const movieList = this.getMovies();
let lowerCaseA, lowerCaseB;
return movieList.sort(function(a, b) {
lowerCaseA = a.title.toLocaleLowerCase();
lowerCaseB = b.title.toLocaleLowerCase();
return lowerCaseA.localeCompare(lowerCaseB);
});
},
getMovies() {
return [{
id: 1,
title: '303 Fear Faith Revenge',
year: "1999",
imdb: "tt0219682",
youtube: "iFV1qaUWemA"
}
...
]
我已经阅读了 Ember 网站上的文档以及各种其他 Google 资源,但似乎无法弄清楚为什么我的加载模板根本没有呈现。任何帮助都是极好的!谢谢!
最佳答案
当您的模型 Hook 返回一个需要很长时间才能解决的 promise 时,加载模板就会触发,但是,您的模型 Hook 没有返回一个 promise 。
model() {
const movies = this.get('movies');
return movies.getMoviesInAlphOrder();
}
getMoviesInAlphOrder
正在返回一个同步数组。进一步与您交谈后发现,您已经为这个数组客户端预先填充了 540 个项目,所以这里的问题是加载模板不仅没有等待的 promise ,而且即使有无论如何它都会立即解决。
您的时间延迟很可能是由于呈现一长串项目而导致的性能问题。有几个 Ember 插件可以帮助解决这个问题,包括我自己的一个:https://github.com/runspired/smoke-and-mirrors
或者/此外,您可能需要考虑将数组“分块”为更小的位并一次渲染 25-50,或者设置一些分页。
关于javascript - 带液体火焰的 Ember 加载模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37978213/
我正在尝试创建一个模板,以便在开头有一个下拉列表,通过 mongo 填充。我有第二个模板,它显示一个表格,其中包含基于上面所做选择的更多详细信息。为了在表中显示内容,我必须首先能够检索从下拉列表中选择
感谢您的阅读。我的英语不好,我会尽可能地解释这个。我需要在 Canvas 中生成反射线,但效果不佳。 我认为我的问题是“计算反射矢量的公式”。 之前学的数学和canvas不一样,所以很迷茫 这是我的代
一个简单的问题,但我找不到简单的解决方案。我必须为此编写帮助程序吗? 我想在模板中创建特定数量的 li 项。具体数字是通过一个名为 max 的参数给出的。 {{> rating max=10 valu
学习神奇的粒子发射器,雪花纷纷落下的动画效果,就是通过CAEmitterLayer来实现的,这个layer还能创建火焰,河流,蒸汽的动画效果,常用于游戏开发。 Creating your emit
我希望并行化 numpy 或 pandas 操作。为此,我一直在研究 pydata 的 blaze。 .我的理解是无缝并行化是它的主要卖点。 不幸的是,我一直无法找到运行在多个内核上的操作。 blaz
我有 3 个人,每个人对同一个问题都有独特的答案。 1 模板显示姓名和问题。另一个不同的模板包含答案。 (总共 4 个模板。1 个用于名称/问题,3 个其他 - 每个唯一答案 1 个)。 {{#
我遇到了与 Blaze 重画相关的严重性能问题。我知道我的数据结构有问题,但我找不到修复它的方法。这有点长:我会尽力把它讲清楚。 目标/问题 我想创建一个计划 View ,用户可以在其中安排测试。用户
我是一名优秀的程序员,十分优秀!