【发布时间】:2017-10-18 23:14:40
【问题描述】:
我在使用 GAE 和 Angular 时遇到了关于在 HTML 模板上动态更新数据的问题。 我想要的是当一个新用户插入系统时,它必须自动显示在列出系统所有用户的页面上。 我不知道该怎么做。我阅读了有关 Angular 的文章,它似乎是一个在 HTML 网页上动态更新数据的好框架。 我使用 JINJA 获取页面并通过查询存储所有用户的 NDB 数据存储来填充模板。 这是“处理页面”的 webapp 处理程序的代码:
class TestA(BaseHandler):
def get(self):
template = JINJA_ENVIRONMENT.get_template('templates/Ang2.html')
Users=datastore._retrieve_all_user()
w = self.response.write
w(template.render({'Users': Users}))
当我插入新用户时,会显示包含所有用户的页面,同时在另一个选项卡中不会显示更新,但如果我手动刷新页面,则会显示新用户。
所以,我想要的是自动获得相同的结果。 关键是我想定期刷新 HTML 页面,以显示最终的新用户。
所以我专注于 Angular,尤其是 $interval 和 $route.reload(),但我试图做出一些可行的东西,但我什么都没有。
这是模板的代码:
<!doctype html>
<html ng-app="demoApp">
<head>
<title>Hello from a template page!</title>
<link rel="stylesheet" type="text/css" href="/css/helloworld.css">
</head>
<body>
<h1>Hello world HTML template.</h1>
<div data-ng-controller="MyController">
<h3>Elenco utenti:</h3>
<ul>
{% for User in Users %}
<li><b>{{User.username}}</b>: {{User.email}} </li>
{% endfor %}
</ul>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
</script>
<script>
var demoApp = angular.module("demoApp", []);
myapp.controller("MyController", function($scope, $interval){
$interval(callAtInterval, 5000);
});
function callAtInterval($route) {
$route.reload();
}
</script>
</body>
任何提示如何做到这一点? PS:我知道这个解决方案并不优雅,但我选择了这个解决方案,因为我需要知道如何去做,因为它对我的 webapp 功能开发的后续步骤很有用
【问题讨论】:
-
您遇到的错误是什么?
标签: javascript html angularjs google-app-engine