Angular 如何使用控制器函数更改路由模板?
In Angular how to change the route template using a controller function?
第一次加载url时,需要显示初始模板。但是点击一个link后,我需要
- 获取它的 href 值(这是当前模板 url 加上一些额外的参数)
- 将带有参数的新 url 发送到服务器
- 获取新模板(服务器将发送带有新数据的新模板)
- 相应地更改视图(更新整个页面)
我已经完成了第一个任务。第 4 个任务是真正的问题。使用单击 link 时调用的函数更改路线模板(使用 ng-click)。我该怎么做?
要用新模板替换当前模板,基本上只需两行代码。即:
- 更新当前使用的模板
$templateCache
;
- 重新加载当前路线。
它可能看起来像这样:
var content = '<h2>New content loaded previously</h2>';
var templateName = $route.current.templateUrl;
$templateCache.put(templateName, content);
$route.reload();
获取当前模板的 URL:
$route.current.templateUrl
您可以尝试直接设置模板值(切勿测试)
$route.current.templateUrl = "http://myrul.tld";
查看文档
第一次加载url时,需要显示初始模板。但是点击一个link后,我需要
- 获取它的 href 值(这是当前模板 url 加上一些额外的参数)
- 将带有参数的新 url 发送到服务器
- 获取新模板(服务器将发送带有新数据的新模板)
- 相应地更改视图(更新整个页面)
我已经完成了第一个任务。第 4 个任务是真正的问题。使用单击 link 时调用的函数更改路线模板(使用 ng-click)。我该怎么做?
要用新模板替换当前模板,基本上只需两行代码。即:
- 更新当前使用的模板
$templateCache
; - 重新加载当前路线。
它可能看起来像这样:
var content = '<h2>New content loaded previously</h2>';
var templateName = $route.current.templateUrl;
$templateCache.put(templateName, content);
$route.reload();
获取当前模板的 URL:
$route.current.templateUrl
您可以尝试直接设置模板值(切勿测试)
$route.current.templateUrl = "http://myrul.tld";
查看文档