2016-11-22 4 views
0

Ich habe ein kleines Angular2-CLI-Projekt, in dem ich Sharepoint-Benutzer mit Lync-Integration anzeigen kann. Im allgemeinen Web-App, gebe ich direkt, wie folgend:Angular CLI: Kann nicht an Eigenschaft 'sip' binden, da es keine bekannte Eigenschaft von 'img' ist

<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> 

Wenn ich Code verwenden, wie oben meine Winkel App geben Fehler, sayinng nicht auf Eigentum ‚sip‘ binden kann, da es nicht eine bekannte Eigenschaft von 'ist img '. Wirklich verloren hier konnte nicht viel Information für solche Eigentumsbindungen finden. Hat jemand das gleiche Problem?

+0

Warum denken Sie es als 'sip' Eigenschaft ist? –

+0

Ich benutze dies um Benutzerpräsenz von Lync zu zeigen. Dafür muss ich SIP-Eigenschaft für IMG-Tag haben – user2584780

Antwort

0

ich diesen Fehler behoben mit ngAfterViewInit() Aufruf und ich habe SIP-Attribute zu img-Tag in dieser Methode hinzugefügt. Hier ist meine komplette Code dafür:

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

}

0

Dies gilt nicht Angular2 Syntax

([sip])='email' 

Es heißt Banane-in-a-box nicht Box-in-a-Banane ;-)

[(sip)]='email' 

Das <img> Element nicht haben eine sip Eigenschaft, daher wahrscheinlich meinen Sie

[attr.sip]='email' 
+0

Vielen Dank für Ihre Antwort. Das funktioniert nicht. Hier ist mein aktualisierter Code: User Presence {{userName}} – user2584780

+0

Ich habe meine Antwort aktualisiert. –

Verwandte Themen