编程语言
首页 > 编程语言> > javascript-用相同的路线显示AngularJs动态模板

javascript-用相同的路线显示AngularJs动态模板

作者:互联网

我是Angular Js的新手.最近,我正在使用route和templateUrl.这很简单.但是现在,我想做一些可能的事情.

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

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

解决方法:

a working example,这接近此Q&一个:Trying to Dynamically set a templateUrl in controller based on constant

如果我对您的理解正确,则方法可能是:

>使用$stateParams切换读/编辑
> templateProvider选择模板
> $template请求通过$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中的示例

标签:angularjs,angular-ui-router,javascript
来源: https://codeday.me/bug/20191120/2044601.html