javascript vue - 角度組件:沒有模板替換選項?



html title (2)

看起來新的AngularJS 1.5 Component概念中沒有“替換”選項(就像指令一樣)。

如果我想將表行 <TR>元素作為組件,你會建議什麼? 在有效的HTML方面是不可能的?

實例:mailBox組件裡面有郵件組件。 通過標記mail-box-component是表,而mail-box是tr。

<mail-box>
    <mail ng-repeat="mail in $ctrl.mails" mail="mail"></mail>
<mail-box>

UPD :關於指令的相關討論 - 為什麼在AngularJS中棄用了?


Answers

由於替換:true標誌已被棄用,因此不再可能採用角度方式

為什麼在AngularJS中棄用了?

替換:真正的旗幟提出了比解決方案更多的問題,這就是它被刪除的原因。 因此,您不能再以這種方式構建指令並提供有效的table-tr-td標記。

但是,有兩個原因可以解釋為什麼它不像它看起來那麼糟糕:

  1. 你可以做任何你想做的事情,沒有table,tr,td等,只使用div,span等元素和一些css就可以了

  2. web-components(和指令是第一次嘗試模擬它們)並不意味著代表標記的這些小片段。 他們更多地被認為是一個真正做某事的功能齊全的組件。 所以無論你想用你的tr做什麼,你認為值得圍繞它建立一個元素指令,它可能不是。

也許,你可以做的是使用屬性指令代替:

<tr my-mail-directive></tr>

並且你的my-mail-directive在tr元素上做了魔術


如果你想使用在ngRoute範例中實現的嵌套視圖功能,試試angular-route-segment.com - 它旨在擴展ngRoute而不是替換它。





javascript angularjs replace components