2016-11-28 45 views
1

爲了設置組件模板的URL root,我們需要一個可用的配置對象在iif級別。如何處理Angular 1.x組件的URL根目錄?

(function() { 
    var app = angular.module('myApp'); 
    app.component('myDashboard', { 
     // templateUrl: HOW_TO_GET_ROOT_HERE + '/path/to/template.html' 
     templateUrl: '/path/to/template.html' 
    }); 
})(); 

到目前爲止,只有這樣,我發現這可能是有模塊對象增加了一些自定義屬性 - 但它真的感覺討厭這樣做。

// define 
var app = angular.module('myApp', []); 
app._config = {root: 'http://my.cdn.js'} 
//... 
// use 
var app = angular.module('myApp'); 
app.component('myDashboard', { 
    templateUrl: app._config.root + '/path/to/template.html' 
} 

有沒有其他更簡潔的方法來做到這一點?

回答

1

在angular app模塊中聲明一個新的常量。然後利用templateUrl函數中的那個常見配置形成templateUrl。現在templateUrl功能可以有注射劑。

app.constant('config', { rootPath: 'http://my.cdn.js'}); 

組件

app.component('myDashboard', { 
    templateUrl: function(config){ 
    return config.rootPath + '/path/to/template.html' 
    } 
} 
+0

是的,顯然是一個可以注入甚至服務這種方式 - 具有PARAM依賴復位元件道具值的功能。 – Michael