angularjs - 如何添加动态模板Url
问题描述
我有 Web 应用程序,我需要在其中加载具有不同参数的模板,例如。
.when('/form/:ProjectID/:FormID', {
templateUrl: 'partials/Form.ashx?fid=' + FormID,
controller: 'FormController'
})
我无法使上述代码正常工作。有人可以告诉我如何解决这个问题吗?我是 AngularJS 的新手,而不是专家。
这是完整的代码。
var app = angular.module('MyApp', ['ui.grid', 'ngSanitize', 'angularTrix', 'ui.codemirror', 'ngRoute']);
app.config(function ($routeProvider) {
$routeProvider
.when('/home', {
templateUrl: 'partials/Home.ashx',
controller: 'HomeController'
})
.when('/project/:ProjectID', {
templateUrl: 'partials/Projects.ashx',
controller: 'ProjectController'
})
.when('/form/:ProjectID/:FormID', {
templateUrl: 'partials/Form.ashx?fid=1',
controller: 'FormController'
})
.otherwise({ redirectTo: '/home' });
});
解决方案
我们可以使用 $stateParams 和 templateProvider 来加载动态的 templateurl
.state('general', {
url: '/{type}',
//templateUrl: 'pages/home.html',
templateProvider: ['$stateParams', '$templateRequest',
function($stateParams, $templateRequest)
{
var tplName = "pages/" + $stateParams.type + ".html";
return $templateRequest(tplName);
}
],
// general controller instead of home
//controller: 'homeController',
controller: 'generalController',
controllerAs: 'ctrl'
推荐阅读
- ansible - 与 Ansible 并行运行 python 脚本
- c# - 在 C# 中检索网络共享权限的问题
- java - spring 如何使用 localhost 而不是 localhost IP?
- r - gsub 匹配后的第一个单词
- java - 如何将麦克风音频流式传输到同一设备抛出扬声器
- wso2 - 构建WSO2 EI 6.5.0的源代码
- facebook - Facebook webhook,如何从中间 id 获取对话 id
- javascript - 在片段中加载 jQuery 并将元素添加到空白页面
- c# - 无法将要分配的类实例声明为库函数的输出参数
- javascript - 2个数组中的反应对象