如何在 angular.1 x 中使用自定义模板 URL 作为 HTML 元素的属性?

Posted

技术标签:

【中文标题】如何在 angular.1 x 中使用自定义模板 URL 作为 HTML 元素的属性?【英文标题】:How to use custom template-url as an attribut of HTML element in angular.1x? 【发布时间】:2017-04-13 22:52:50 【问题描述】:

假设我有这样的代码:

<body>
<authentication-form template="./path/to/different/style.html" ></authentication>
...
</body>

Authentication-form 是一个组件。它有模板和简单的控制器。如何通过在angular.1x中添加template-url作为HTML元素的属性来使用自定义模板?我正在尝试绑定:,但它可能不是我想要的,

【问题讨论】:

在页面中声明组件实例时不能定义模板 url。说明你的需要,也许有什么可以帮助你的。基于Angular 1.5的解决方案合适吗? 【参考方案1】:

我找到了解决方案。我的组件看起来像这样:

angular.module("authentication")
       .component("authentication", 
            templateUrl: function($element, $attrs) 
                return $attrs.templateUrl;
            ,
            controller: AuthenticationCtrl,
        );

在 index.html 我有:

<body>
     <authentication template-url="./path/to/template.html></authentication>
</body>

它可以在没有绑定的情况下工作......我不确定它是否可以。

【讨论】:

【参考方案2】:

组件定义在哪里?

你的组件定义应该有一个名为 templateUrl 的属性,然后你把它放在那里。

https://docs.angularjs.org/guide/component

angular.module('sample').component('authenticationForm', 
  templateUrl: './path/to/different/style.HTML',
  controller: AuthenticationFormController,
  bindings: 
);

那么你的html就简单多了:

<authentication-form></authentication-form>

【讨论】:

感谢您的回答。我的组件看起来像你写的,但我正在寻找不同的方式。我什至不知道是否有可能以不同的方式来做——这就是我问的原因。 html中为什么需要模板路径?

以上是关于如何在 angular.1 x 中使用自定义模板 URL 作为 HTML 元素的属性?的主要内容,如果未能解决你的问题,请参考以下文章

在 Kendo Scheduler 自定义模板中绑定 DropDownList(ASP.NET MVC Wrapper 版本)

如何在模板类定义中构造自定义类型

如何将属性评估为使用 Angular 1.5 组件的自定义函数的字符串?

加载自定义模板标签时出现问题(错误:没有名为 x 的模块)

如何在Dynamic CRM 2011中使用自定义Workflow

【hbuilderX】使用总结