Angular CLI:无法绑定到 属性'sip',因为它不是 'img' 的已知 属性
Angular CLI: Can't bind to Property' sip' since it isn't a known property of 'img'
我有一个小的 Angular2 CLI 项目,我在其中使用 Lync Integration 显示 Sharepoint 用户。在一般的网络应用程序中,我直接给出如下:
<span>
<span class='ms-imnSpan'>
<a href='#' onclick='IMNImageOnClick(event);return false;' class='ms-imnlink ms-spimn-presenceLink' >
<span class='ms-spimn-presenceWrapper ms-imnImg ms-spimn-imgSize-10x10'>
<img name='imnmark' title='' ShowOfflinePawn='1' class='ms-spimn-img ms-spimn-presence-disconnected-10x10x32' src='/_layouts/15/images/spimn.png?rev=23' alt='User Presence' ([sip])='email' id='imn_{{userId}},type=sip' />
</span>
</a>
</span>
<span>
<a href='#' onclick='IMNImageOnClick(event);return false;' class='ms-imnlink' tabIndex='-1'>
<img name='imnmark' title='' ShowOfflinePawn='1' class=' ms-hide' src='/_layouts/15/images/spimn.png?rev=23' alt='User Presence' ([sip])='email' id='imn_{{userId}}_2,type=sip' />{{userName}}</a>
</span>
</span>
如果我使用像上面这样的代码,我的 angular 应用程序给出错误,sayinng 无法绑定到 属性 'sip' 因为它不是已知的 属性 'img'。真的迷路了,找不到很多关于这种 属性 绑定的信息。有人遇到同样的问题吗?
这是无效的 Angular2 语法
([sip])='email'
它叫做盒装香蕉而不是盒装香蕉 ;-)
[(sip)]='email'
<img>
元素没有 sip
属性,因此您的意思可能是
[attr.sip]='email'
我使用 ngAfterViewInit() 调用修复了这个错误,并在此方法中向 img 标签添加了 sip 属性。这是我的完整代码:
ngAfterViewInit() {
var elements = document.getElementsByName('imnmark');
for(let i=0; i< elements.length; i++) {
var att = document.createAttribute("sip");
att.value = this.email;
elements[i].setAttributeNode(att);
var onloadAttr = document.createAttribute("onload");
onloadAttr.value = "IMNRC('"+this.email+"', this)";
elements[i].setAttributeNode(onloadAttr);
}
if(typeof(window["IMNRC"]) != 'undefined') {
window["IMNRC"](this.email, document.getElementById('imn_uniqueId,type=sip'));
window["IMNRC"](this.email, document.getElementById('imn_uniqueId_2,type=sip'));
}
}
}
我有一个小的 Angular2 CLI 项目,我在其中使用 Lync Integration 显示 Sharepoint 用户。在一般的网络应用程序中,我直接给出如下:
<span>
<span class='ms-imnSpan'>
<a href='#' onclick='IMNImageOnClick(event);return false;' class='ms-imnlink ms-spimn-presenceLink' >
<span class='ms-spimn-presenceWrapper ms-imnImg ms-spimn-imgSize-10x10'>
<img name='imnmark' title='' ShowOfflinePawn='1' class='ms-spimn-img ms-spimn-presence-disconnected-10x10x32' src='/_layouts/15/images/spimn.png?rev=23' alt='User Presence' ([sip])='email' id='imn_{{userId}},type=sip' />
</span>
</a>
</span>
<span>
<a href='#' onclick='IMNImageOnClick(event);return false;' class='ms-imnlink' tabIndex='-1'>
<img name='imnmark' title='' ShowOfflinePawn='1' class=' ms-hide' src='/_layouts/15/images/spimn.png?rev=23' alt='User Presence' ([sip])='email' id='imn_{{userId}}_2,type=sip' />{{userName}}</a>
</span>
</span>
如果我使用像上面这样的代码,我的 angular 应用程序给出错误,sayinng 无法绑定到 属性 'sip' 因为它不是已知的 属性 'img'。真的迷路了,找不到很多关于这种 属性 绑定的信息。有人遇到同样的问题吗?
这是无效的 Angular2 语法
([sip])='email'
它叫做盒装香蕉而不是盒装香蕉 ;-)
[(sip)]='email'
<img>
元素没有 sip
属性,因此您的意思可能是
[attr.sip]='email'
我使用 ngAfterViewInit() 调用修复了这个错误,并在此方法中向 img 标签添加了 sip 属性。这是我的完整代码:
ngAfterViewInit() {
var elements = document.getElementsByName('imnmark');
for(let i=0; i< elements.length; i++) {
var att = document.createAttribute("sip");
att.value = this.email;
elements[i].setAttributeNode(att);
var onloadAttr = document.createAttribute("onload");
onloadAttr.value = "IMNRC('"+this.email+"', this)";
elements[i].setAttributeNode(onloadAttr);
}
if(typeof(window["IMNRC"]) != 'undefined') {
window["IMNRC"](this.email, document.getElementById('imn_uniqueId,type=sip'));
window["IMNRC"](this.email, document.getElementById('imn_uniqueId_2,type=sip'));
}
}
}