2

我正在研究一個角度應用程序。對於一定的指導,我用的模板函數是這樣的:指令中的AngularJS模板函數給出錯誤'指令模板必須只有一個根元素'

template: function(element, attr) { 
       return '<div class="myClass">/..some HTML here../</div>' 
      } 

然而,當我跑我的代碼,我得到以下錯誤:

Error: Template for directive must have exactly one root element, was function (element, attr) { ...the function definition goes here }

如果我將其更改爲正常的鍵值對如下,它工作正常。

template: '<div class="myClass">/..some HTML here../</div>' 

我不明白這裏有什麼問題。鏈接和編譯功能工作得很好。任何幫助,將非常感激。在此先感謝

+0

你可以發表你的問題plunkr?你使用哪種角度版本?當你將函數傳遞給模板時,是否有一些邏輯會生成html> –

+0

@NikhilBhandari我只是簡單地從函數返回html而不使用任何用於生成html的邏輯,儘管我想在一個函數中使用一些'attr' 'NG-之開關。我正在使用angular v1.0.4 –

+0

指令模板變量需要一個value.your傳遞函數。如果你想使用function.declare這個函數在某處並且在這裏調用它就像'template:myfunction()' – saiyan

回答

1

此功能是在angular 1.1.4的更高版本中引入的。你必須升級或找到@saiyan提到的解決方法。

入住這plunkr - plnkr.co/edit/QVdE3xdn3hmcoQ33gj2R?p=preview

HTML:

<!DOCTYPE html> 
<html ng-app="myapp"> 

    <head> 

    <!-- CHANGE THE ANGULAR VERSION HERE --> 
    <script src="https://code.angularjs.org/1.0.4/angular.js"></script> 

    <script src="app.js"></script> 
    </head> 

    <body > 
    <div something></div> 
    </body> 

</html> 

JS:

var app = angular.module('myapp', []); 

app 
    .directive("something", function() { 
     return { 
      template: function() { 
       return "Hello World!"; 
      } 
     } 
    }) 
相關問題