AngularJs动态模板显示相同的路径

时间:2015-04-06 16:10:56

标签: javascript angularjs angular-ui-router

我是Angular Js的新手。最近我正在使用routes和templateUrl。这是直截了当的。但是现在我想做一些事情,如果有可能的话。

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

如果可以,请告诉我。谢谢!

1 个答案:

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

查看action here

中的考试