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

查看action here

中的考试