2017-03-17 28 views
4

爲什麼這不工作,正如文檔中所述?Angular2渲染器setElementClass isAdd選項不起作用

renderer.setElementClass(el, 'class1', false); // replace class 
renderer.setElementClass(el, 'class2', true); // add a class 

這導致元素只有class2而不是兩者。

參考Angular2 renderer docs

+1

你可以看到這是** **實驗因此沒有可以質疑它。我們需要等待穩定版本發佈,並將其作爲問題提出。你怎樣才能更新** el **元素的代碼 – Aravind

回答

9

原來,isAdd選項是刪除類的等價物,所以下面的作品觸發類:

renderer.setElementClass(el, 'class1', false); // remove class1 
renderer.setElementClass(el, 'class2', true); // add class2 

哦,沒什麼奇怪的調用方法setElementClass去除它當然...

3

只需提及Renderer現在已被棄用,並已被替換爲Renderer2。在Renderer2類中,有兩種方法可取代已棄用的Renderer的setElementClass

  • 要添加一個類:

    renderer.addClass('popup');

  • 要刪除類:

    renderer.removeClass('popup');