2014-06-25 86 views
0

我正在嘗試將骨幹應用程序緩慢轉換爲Angular。它實際上使用木偶來精確。在我目前的每個Marionette視圖中,他們都是Marionette.ItemView。對於模板顯示,我這樣做:將Angular html模板傳遞給骨幹模板

get template() { 
     return _.template(nameOfMyTemplate, { myModel: this.model }); 
    } 

nameOfMyTemplate將是我AwesomeTemplate.template.html文件,它是我的解決方案。

我想知道如何才能在沒有在骨幹或木偶應用程序中調用_.template的情況下傳遞我的template.html?因此,在我的骨幹視圖或marionette.itemview的某處,我可以做

template: NewAwesomeAngularTemplate.template.html // where NewAwesomeAngularTemplate.template.html is a file in my solution 

有沒有人遇到過這個呢?我無法找到有關人們如何將他們的應用程序從Backbone或Marionette轉換爲Angular的更多信息。提前致謝!

回答

0

木偶預計所有模板立即可用,而不必被提取異步。該view.template功能可以很容易地覆蓋,但需要立即返回一個字符串(或返回一個函數,它會立即返回一個字符串)。

有一個叫Marionette.Async老叉,這使獲取按需模板,但之後的維護者確定這是一個非常糟糕的主意它是很久以前abandonded。

最好的辦法是構建一種機制,將預先將所有模板加載到內存中(如將它們嵌入到單個JS文件或主HTML頁面中)或確保模板按需獲取的自定義機制之前使用視圖。前者會容易得多,但可行性取決於你有多少模板以及它們有多大。

0

不太熟悉Backbone或Marionette,但是看了一下網站。

我不確定這是不是你要問的問題,所以如果我離開基地,請原諒。在Angular中,您可以使用ngRouter或更強大的uiRouter將您的url綁定到控制器和視圖。

state('index', { 
    url: "/", 
    controller: 'SomeController', 
    templateUrl: "template/NewAwesomeAngularTemplate.html" 
}) 

不知道這是不是你要找的。如果是這樣,在https://github.com/angular-ui/ui-router