gpt4 book ai didi

javascript - 具有相同路由的 AngularJs 动态模板显示

转载 作者:行者123 更新时间:2023-11-29 10:40:56 25 4
gpt4 key购买 nike

我是 Angular Js 的新手。最近我在做路由和 templateUrl 的工作。这是直截了当的。但是现在,如果可能的话,我想做点什么。

我想显示具有相同路由的不同 View 或模板,但取决于我从服务器获取的数据的属性。如果状态为 A 则显示编辑模式,如果状态为 B 则显示只读模式。除状态外,数据值相同。我在模板中执行 ng-if 并来回切换。可以通过这种方式完成,但出于可重用性的目的,我希望每个模板都有一个单独的模板,并根据这些属性在路由中调用模板。

让我知道是否可以做到。谢谢!

最佳答案

a working example ,接近这个问答:Trying to Dynamically set a templateUrl in controller based on constant

如果我理解正确,方法可能是:

  • 使用 $stateParams 切换读取/编辑
  • templateProvider 选择模板
  • $templateRequest 通过 $http + $tempalteCache
  • 从 Angular 原生包装中获利

状态定义会非常简单:

$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">

查看action here中的考试

关于javascript - 具有相同路由的 AngularJs 动态模板显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29474976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com