【问题标题】:Angular CLI: Can't bind to Property' sip' since it isn't a known property of 'img'Angular CLI:无法绑定到属性“sip”,因为它不是“img”的已知属性
【发布时间】:2016-11-23 22:36:48
【问题描述】:

我有一个小型 Angular2 CLI 项目,我在其中显示带有 Lync 集成的 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 应用程序给出错误的代码,说不能绑定到属性“sip”,因为它不是“img”的已知属性。真的迷路了,找不到太多关于此类属性绑定的信息。有人有同样的问题吗?

【问题讨论】:

  • 为什么会有sip属性?
  • 我使用它来显示来自 Lync 的用户状态。为此,我需要有 img 标签的 sip 属性

标签: angular angular-cli


【解决方案1】:

我通过调用 ngAfterViewInit() 修复了此错误,并在此方法中将 sip 属性添加到 img 标记。这是我的完整代码:

  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'));
    }
}        

}

【讨论】:

    【解决方案2】:

    这不是有效的 Angular2 语法

    ([sip])='email'
    

    它被称为香蕉盒而不是香蕉盒 ;-)

    [(sip)]='email'
    

    &lt;img&gt; 元素没有 sip 属性,因此您的意思可能是

    [attr.sip]='email'
    

    【讨论】:

    • 非常感谢您的回答。那是行不通的。这是我更新的代码: {{userName}}
    猜你喜欢
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    相关资源
    最近更新 更多