2014-04-29 73 views
7

我是AngularJs的新手。我正在寫我的自定義角度指令,其中包含一些html內容的模板。當我使用下面的代碼模板時,它工作正常。angularJs自定義指令不能使用templateUrl

demoApp.directive('demoCarousel', function() { 
    return { 
    restrict: 'E', 
    replace:'true', 
    template: "<h1>This is from the custom directive..</h1>" 
    }; 

});

但是,當我用templateUrl替換指向部分內部的html的模板時出現錯誤。

demoApp.directive('demoCarousel', function() { 
    return { 
    restrict: 'E', 
    replace:'true', 
    templateUrl: "/partials/carousel.html" 
}; 

});

的JavaScript錯誤是一樣的東西:

Error: [$compile:tplrt] http://errors.angularjs.org/1.2.15/ $compile/tplrt?p0=glassCarousel&p1=%2Fpartials%2Fcarousel.html

請讓我知道我錯了,什麼用templateUrl正確的方法

注:我使用的內唯一的純HTML代碼carousel.html文件。

回答

8

error賽斯:Template for directive 'glassCarousel' must have exactly one root element. /partials/carousel.html

這意味着你必須在你的模板是這樣的:

<div>...</div> 
<div>...</div> 

這是不允許的,你應該有一個根元素:

<div> 
    <div>...</div> 
    <div>...</div> 
</div> 
+0

非常感謝。這節省了我很多時間。 – Pradeep

+0

@ user883561歡迎您:) – karaxuna

+0

+1必須使用外部文件,作爲使用templateUrl調用「index.html」代碼的ui-bootstrap示例的替代方法 – Sydwell

相關問題