AngularJs 相同路线的动态模板显示
AngularJs dynamic template display with same route
我是 Angular Js 的新手。最近我在做路由和 templateUrl 的工作。这是直截了当的。但是现在,如果可能的话,我想做点什么。
我想显示具有相同路由的不同视图或模板,但取决于我从服务器获取的数据的属性。如果状态为 A 则显示编辑模式,如果状态为 B 则显示只读模式。除状态外,数据值相同。我在模板中执行 ng-if 并来回切换。可以通过这种方式完成,但出于可重用性的目的,我希望每个模板都有一个单独的模板,并根据这些属性在路由中调用模板。
让我知道是否可以做到。谢谢!
有a working example, which is close to this Q & A:
如果我理解正确的话,方法可以是:
- 使用
$stateParams
切换阅读/编辑
templateProvider
到 select 模板
$templateRequest
从 angular 原生包装中获利超过 $http
+ $tempalteCache
状态定义非常简单:
$stateProvider
.state('myState', {
url: '/myState/:operation',
templateProvider: ['$stateParams', '$templateRequest',
function($stateParams, $templateRequest) {
var templateName = 'read.html';
if ($stateParams.operation === "edit") {
templateName = 'edit.html';
}
return $templateRequest(templateName);
}],
controller: function ($state) {
}
});
并链接到此状态:
<a href="#/myState/read">
<a href="#/myState/edit">
中的考试
我是 Angular Js 的新手。最近我在做路由和 templateUrl 的工作。这是直截了当的。但是现在,如果可能的话,我想做点什么。
我想显示具有相同路由的不同视图或模板,但取决于我从服务器获取的数据的属性。如果状态为 A 则显示编辑模式,如果状态为 B 则显示只读模式。除状态外,数据值相同。我在模板中执行 ng-if 并来回切换。可以通过这种方式完成,但出于可重用性的目的,我希望每个模板都有一个单独的模板,并根据这些属性在路由中调用模板。
让我知道是否可以做到。谢谢!
有a working example, which is close to this Q & A:
如果我理解正确的话,方法可以是:
- 使用
$stateParams
切换阅读/编辑 templateProvider
到 select 模板$templateRequest
从 angular 原生包装中获利超过$http
+$tempalteCache
状态定义非常简单:
$stateProvider
.state('myState', {
url: '/myState/:operation',
templateProvider: ['$stateParams', '$templateRequest',
function($stateParams, $templateRequest) {
var templateName = 'read.html';
if ($stateParams.operation === "edit") {
templateName = 'edit.html';
}
return $templateRequest(templateName);
}],
controller: function ($state) {
}
});
并链接到此状态:
<a href="#/myState/read">
<a href="#/myState/edit">
中的考试