当前位置: 首页 > 面试题库 >

AngularJS 1.5中同一组件中的多个模板

尹承业
2023-03-14
问题内容

我可以在AngularJS 1.5组件中使用多个模板吗?我有一个具有一个属性的组件,因此我想基于该属性名称加载不同的模板。如何根据元素的属性名称加载模板?

jsConfigApp.component('show', {
templateUrl: 'component/show.html',  //How to change it based on attribute value?
bindings:{
    view:"@"
},
controller: function () {
    console.log(this.view)
    if (this.view = "user") {
       console.log("user")
    } else if (this.view = "user") {
        console.log("shop")
    } else {
        console.log("none")
    }      
}
})

谢谢。


问题答案:

我使用两种方法在1.5.x中制作组件的动态模板:

1)通过attr属性传递:

templateUrl: function($element, $attrs) {
      return $attrs.template;
}

2)将服务注入模板并从那里获取模板:

templateURL函数:

templateUrl: function($element, $attrs,TemplateService) {
      console.log('get template from service:' + TemplateService.getTemplate());
      return TemplateService.getTemplate();
}

在getTemplate函数中,返回基于变量的模板URL

getTemplate: function(){
     if (this.view = "user") {
          return "user.html";
    } else if (this.view = "user") {
          return "shop.html";
    } else {
        console.log("none")
    } 
    return "shop.html";       
}

首先通过set方法将变量“ view”传递给工厂。

如果您需要在html模板中进行更多更改,请返回使用指令,并在更多支持下使用编译服务。



 类似资料:
  • 问题内容: 我在一个文件中有多个html文件。 结果是我弄乱了html文件。 如何在不删除其余标签的情况下更正此错误? 我正在使用python生成html文件。 如果使用,我会得到一个漂亮的html页面。 如果我第二次使用它,则页面会变形。 我们可以使用iframe纠正此问题吗?有人可以举个例子吗? 问题答案: 一个HTML文档只能有一个标签和一个标签。如果仅将多个HTML文档放在一起,则它将是无

  • 我正在尝试为我的每个d3js元素使用reactjs组件。父组件绘制图形,子组件应在其周围绘制圆环。但是现在渲染函数将它们分开绘制。下面的代码显示了如何将图形svg追加到父组件中(在内部): 以下是父组件渲染函数的代码: 我认为子组件中存在一个问题,我尝试了选择(#容器),但它找不到它。所以我不得不使用将甜甜圈附加到一个单独的div: 我应该如何在子组件中更改它?是否需要更改父渲染函数?

  • 问题内容: 我是整个浏览器新手。我一直在尝试使用browserify + reactify + gulp来转换,缩小和组合一个React应用程序。只要我有一个单身,一切正常。由于我有多个共享组件,因此我实际上是托管在同一文件中并在项目中重复使用,因此我想导出多个组件。我试过一个数组: 并且还尝试了具有多个属性的对象: 并且还尝试对对象中的调用进行内联,但这无济于事。 有没有办法做到这一点,还是我必

  • 我有一个运行多个dbs的mysql服务器,这些dbs有一些完全相同的表(别问了,我继承了这个项目): 它们之间还有许多相同的表,此外,DB01、DB02和DB03还有它们独占的其他表。 有没有可能为上面的表结构使用一个模型/服务层,这样我就可以使用Hibernate单独查询每个表? 我尝试的是设置一个抽象超级类(使用@MappedSuperClass),但这需要大量文件继承这个类,唯一的区别是@t

  • 问题内容: 我有一个包含3个组件的项目,并且 在中,我有以下关注者 当我跑步时,我看到 每个模块都会生成一个jar文件。 问题 :如何将它们合并为一个? 我是Maven新手,不知道要寻找什么来完成此任务,请提供指针 问题答案: 那很简单。创建另一个名为或类似的模块: 模块应依赖于所有其他模块: 并包装: 您还需要输入。而已。

  • 我正在使用的弹出窗口来显示菜单选项。 但问题是,它不适用于多种场景。 我的意思是,当我点击第一个菜单按钮时,同样的方法会被触发,因此每次都会打开同样的菜单。 处理此特定场景的更好方法应该是什么。 这是小吃