有關在1.5.8角度組件中transclude的問題,以及它的用途。Angular 1.5使用transclude或不使用transclude
這裏是一些代碼的例子;
var app = angular.module('app', [])
function AccordionController() {
var self = this;
// add panel
self.addPanel = function(panel) {
// code to add panel
}
self.selectPanel = function() {
//code to select panel
}
}
// register the accordion component
app.component('accordion', {
template: '<!---accordion-template-->',
controller: AccordionController
}
function AccordionPanelController() {
// use parents methods here
var self = this;
// add panel
self.parent.addPanel(self);
// select panel
self.parent.selectPanel(self);
}
// register the accordion-panel component
app.component('accordionPanel', {
// require the parent component
// In this case parent is an instance of accordion component
require: {
'parent': '^accordion',
template: '<!---accrodion-panel-template-->',
controller: AccordionController
}
我的問題是將其使用transclude是父內更好地嵌套的所有根據面板或者可替換地通過在一個數據陣列,其這個循環出基於內部傳遞的陣列上的所需數量的面板的父使用綁定。
感謝
//添加您的回覆,一個例子,我有transclude的可能是必要的是在下面的代碼位
<modal modal-id="editCompany" title="Edit Company"> <company-form company="$ctrl.company"></company-form> </modal>
在這裏,我們有一個模式
非常感謝在上面的例子中,我可以添加公司表單中的各種其他組件,但是我們可以將它作爲聯繫表單。有其他方法嗎?
您的回覆,一個例子非常感謝我的transclude可能是必要的是在代碼 '<模態-ID =「editCompany」稱號=「修改公司」> <公司下面的位 - 形式公司=「$ ctrl.company」>公司形式> ' 這裏,我們有可能有多種在其內使用的其他組件,對上述的例子我加入公司模態分量表格,但這可能是我們的聯繫方式。有其他方法嗎? –
絕對。使用服務。我寫的一個應用程序需要嵌套組件的彈出窗口(我實際上不喜歡整體用戶體驗,但有時候它是有道理的)。我剛剛創建了一個名爲PopupService的東西,它被注入彈出指令控制器。 我通常認爲將數據視爲應用程序的一個完全獨立的層,並使用服務來保存並提供數據,而不是在視圖層次結構中上下發送事件等。我從來不會在組成部分的層次結構中出汗,也不應該;如果你修改UI標記,你會破壞你的代碼。 –