我正在写一个Angular应用程序,{{myVal}}我想要显示一个响应.
我怎么做?如果我只是使用绑定语法,innerHTML它会编码所有div字符(当然).
我需要以某种方式将a的内部html绑定{{myVal}}到变量值.
我正在尝试设置一个标签系统,允许组件自己注册(带标题).第一个选项卡就像一个收件箱,有大量的操作/链接项可供用户选择,每个点击都应该能够在点击时实例化一个新组件.动作/链接来自JSON.
然后,实例化的组件将自己注册为新选项卡.
我不确定这是否是"最佳"方法?Sofar我见过的唯一指南是静态标签,这没有帮助.
到目前为止,我只有主要引导的标签服务在整个应用程序中持续存在,看起来像这样的东西.
export interface ITab { title: string; }
@Injectable()
export class TabsService {
private tabs = new Set<ITab>();
addTab(title: string): ITab {
let tab: ITab = { title };
this.tabs.add(tab);
return tab;
}
removeTab(tab: ITab) {
this.tabs.delete(tab);
}
}
Run Code Online (Sandbox Code Playgroud)
问题:
DynamicComponentBuilder会被使用吗?ng-content,但我找不到有关如何使用它的更多信息编辑:尝试澄清
将收件箱视为邮件收件箱,将项目作为JSON提取并显示多个项目.单击其中一个项目后,将创建一个新选项卡,其中包含该项操作"类型".然后类型是一个组件
Edit2:图片
我想手动编译一些包含HTML的指令.$compileAngular 2中的等价物是什么?
例如,在Angular 1中,我可以动态编译HTML片段并将其附加到DOM:
var e = angular.element('<div directive></div>');
element.append(e);
$compile(e)($scope);
Run Code Online (Sandbox Code Playgroud) 我使用Angular 2.0.0-beta.0,我想直接创建和绑定一些简单的HTML.是可能的,怎么样?
我试着用
{{myField}}
Run Code Online (Sandbox Code Playgroud)
但myField中的文本将被转义.
对于Angular 1.xi发现了ng-bind-html的命中,但这似乎不支持2.x.
弗兰克
我的问题,当我使用innererHtml绑定时 - angular2删除所有样式属性.这对我来说很重要,因为在我的任务中 - html是在服务器端生成的,具有所有样式.例:
@Component({
selector: 'my-app',
template: `
<input type="text" [(ngModel)]="html">
<div [innerHtml]="html">
</div>
`,
})
export class App {
name:string;
html: string;
constructor() {
this.name = 'Angular2'
this.html = "<span style=\"color:red;\">1234</span>";
}
}
Run Code Online (Sandbox Code Playgroud)
但是在DOM中我只看到1234而且这个文本不是红色的.
http://plnkr.co/edit/UQJOFMKl9OwMRIJ38U8D?p=preview
谢谢!
所以,问题很简单......
我有一张桌子和一些角度逻辑(计算样式等)......特别是我在TH上有这个
[class.hidden] = "column.group !== 'key-data' && currentTableView !== column.group"
Run Code Online (Sandbox Code Playgroud)
对于我的表粘性标题功能,我需要克隆表并将其定位固定..使用指令,这样做(简化)
let newTable = element.cloneNode(true);
body.appendChild(newTable);
Run Code Online (Sandbox Code Playgroud)
显然角度逻辑不适用于newTable,但我希望它是......
我该怎么做?
我想从材料CDK 使用新的Portal在表单的多个部分中注入动态内容.
我有一个复杂的表单结构,目标是有一个表单,指定子组件可以(或不)注入模板的多个位置.
也许CDK门户网站不是最好的解决方案?
我试了一下,但我确定这不是做的事情:https: //stackblitz.com/edit/angular-yuz1kg
我也尝试过,new ComponentPortal(MyPortalComponent)但我们如何设置输入呢?通常是这样的componentRef.component.instance.myInput
我有以下jsfiddle
我希望能够将我的自定义组件粘贴到特定的网格中(例如"")
现在没有Angular2,我只是使用:
var el = $.parseHTML("<div><div class=\"grid-stack-item-content\" data-id=\""+id+"\"/><div/>");
this.grid.add_widget(el, 0, 0, 6, 5, true);
Run Code Online (Sandbox Code Playgroud)
问题是,我不知道我怎么能这样做:
var el = $.parseAndCompileHTMLWithComponent("<div><div class=\"grid-stack-item-content\" data-id=\""+id+"\"/><fancy-button></fancy-button><div/>");
this.grid.add_widget(el, 0, 0, 6, 5, true);
Run Code Online (Sandbox Code Playgroud)
在angular1中,我知道有一个编译,但在angular2中,没有这样的东西.
我的花哨按钮组件很简单,如下所示:
@Component({
selector: 'fancy-button',
template: `<button>clickme</button>`
})
export class FancyButton {}
Run Code Online (Sandbox Code Playgroud)
如何动态添加花式按钮组件?
我用angular-cli(ng new my-project-name)创建了一个新项目
当我运行npm run test它运行没有任何失败.
我在项目中添加了font-awsome模块(https://www.npmjs.com/package/angular-font-awesome)来显示字体图标.
在我的html文件中添加了<fa name="bars"></fa>标签并获得了预期的输出.如果我npm run test再次运行,它将以3个失败结束,所有失败都是针对fa标记.
这是样本失败报告
'fa' is not a known element:
1. If 'fa' is an Angular component, then verify that it is part of this module.
2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. ("--The content below is only a placeholder and can be replaced.-->
<div style="text-align:center"> [ERROR ->]<fa name="bars"></fa>
<h1> Welcome to {{title}}!
"): …Run Code Online (Sandbox Code Playgroud) 我一直试图从两天后找到解决这个问题的方法.不幸的是,我无法得到我想要的东西.我正在使用Angular5.
<div class="form-group col-md-12" [innerHTML]="GetItemsOfHolder(item.children[1],1,
'UserConfigGroupsLabelHolder') | keepHtml"></div>
Run Code Online (Sandbox Code Playgroud)
这就是我的功能:
GetItemsOfHolder(item: any,divName:string, recursive: boolean = false,typeName:string="")
{
return html;
}
Run Code Online (Sandbox Code Playgroud)
一切正常,除非我返回的html包含一个名为Select2的包 这是我用来将html添加到这个div中它非常好用.直到我想添加动态包.
我的意思是return html包含这样的包组件:
itemhtml +="<select2 data-type='"+holderItem.itemType+"'
[data]='this.dropdownData."+holderItem.name+"'></select2>"
Run Code Online (Sandbox Code Playgroud)
这只是将纯文本返回给浏览器,并且无法按预期工作.
我想要的是要转换为组件的字符串或任何其他工作方式并生成select2下拉列表.
我一直试图搜索这么多东西.但它不起作用 这很好但我无法理解这一点 并且不推荐使用dynamiccomponentloading.
任何人都可以请给我一个想法我该如何解决这个问题?任何一个例子都会很棒.
angular ×10
typescript ×3
javascript ×2
angular-cdk ×1
components ×1
dynamic ×1
font-awesome ×1
gridstack ×1
styles ×1