title: Angular cell renderers don't get ICellRendererParams in init
body: <p>I'm trying to make a cell renderer for making IP addresses into click-able SSH links using Angular. The renderer component:</p>
  <pre class="lang-js prettyprint-override"><code>import { Component, OnInit, OnDestroy } from &quot;@angular/core&quot;;
  import { DomSanitizer, SafeUrl } from &quot;@angular/platform-browser&quot;;
  
  import { ICellRendererAngularComp } from &quot;ag-grid-angular&quot;;
  import { ICellRendererParams } from &quot;ag-grid-community&quot;;
  
  const username = &quot;me&quot;;
  
  /**
   * SSHCellRendererComponent is an AG-Grid cell renderer that provides ssh:// links as content.
   */
  @Component({
      selector: &quot;ssh-cell-renderer&quot;,
      styleUrls: [&quot;./ssh-cell-renderer.component.scss&quot;],
      templateUrl: &quot;./ssh-cell-renderer.component.html&quot;
  })
  export class SSHCellRendererComponent implements ICellRendererAngularComp {
  
      /** The IP address or hostname to which the SSH link will point. */
      public get value(): string {
          return this.val;
      }
      private val = &quot;&quot;;
  
      /** The SSH URL to use. */
      public get href(): SafeUrl {
          const url = `ssh://${username}@${this.value}`;
          return this.sanitizer.bypassSecurityTrustUrl(url);
      }
  
      constructor(private readonly sanitizer: DomSanitizer) {}
  
      /** Called by the AG-Grid API at initalization */
  
      public refresh(params: ICellRendererParams): boolean {
          this.val = params.value;
          return true;
      }
  
      /** called after ag-grid is initalized */
      public agInit(params: ICellRendererParams): void {
          console.log(&quot;has value?:&quot;, Object.prototype.hasOwnProperty.call(params, &quot;value&quot;));
          console.log(&quot;getval:&quot;, params.getValue());
          this.val = params.value;
      }
  }
  </code></pre>
  <p>and then the template looks like:</p>
  <pre class="lang-html prettyprint-override"><code>&lt;a [href]=&quot;href&quot; target=&quot;_blank&quot;&gt;{{value}}&lt;/a&gt;
  </code></pre>
  <p>It should be pretty basic, and I've done basically exactly this in AngularJS, but it doesn't work. The cells all wind up with actual content that looks like:</p>
  <pre class="lang-html prettyprint-override"><code>&lt;a href=&quot;ssh://me@&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;
  </code></pre>
  <p>and those two <code>console.log</code>s I have in <code>agInit</code> show me why:</p>
  <pre><code>16:34:38.554     has value?: false             ssh-cell-renderer.component.ts:62:10
  16:34:38.555     getval: undefined             ssh-cell-renderer.component.ts:63:10
  </code></pre>
  <p>I don't know what type of object is being given to <code>agInit</code> (and probably <code>refresh</code>, too), but it's clearly not <code>ICellRendererParams</code> - and <code>getValue</code> also doesn't help me because for whatever reason it always returns <code>undefined</code>. I have access to <code>data</code> (and from that I can see that the value being rendered is, in fact, not <code>undefined</code>), but then if I wanted to make a renderer for SSH links using an &quot;IPv4 Address&quot; column and an &quot;IPv6 Address&quot; column, I'd need two nearly identical components, which is a lot of duplicated code.</p>
  <p>So what am I missing?</p>