我是Angular Js的新手。最近我正在使用routes和templateUrl。这是直截了当的。但是现在我想做一些事情,如果有可能的话。
我想用相同的路径显示不同的视图或模板,但取决于我从服务器获取的数据的属性。如果状态为A,则显示编辑模式,如果状态为B,则显示只读模式。除状态外,数据值相同。我正在做ng-if在模板中来回切换。它可以通过这种方式完成,但为了可重用性,我希望每个模板都有一个单独的模板,并根据这些属性调用路径中的模板。
如果可以,请告诉我。谢谢!
答案 0 :(得分:3)
有a working example,接近此Q&答:Trying to Dynamically set a templateUrl in controller based on constant
如果我理解你的话,方法可能是:
$stateParams
切换读取 / 编辑 templateProvider
选择模板$templateRequest
从$http
+ $tempalteCache
状态def非常简单:
$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">
中的考试