2017-01-16 3 views
0
<script type="text/template"> 
    <div class="abcd"> 
      <div class="efg" data-price="{{::displayPrice}}"></div> 
    </div> 
</script> 

у меня шаблон, как это, и мне нужно добавить {{::displayPrice}}, которая является переменной в области видимости, в Data- div «s цена часть. Однако div написан в теге <script>, из-за чего он не работает.angularJS {{переменная}} не может быть отображен в тег сценария

Может ли кто-нибудь сказать мне, как это сделать?

+0

это DIV тег в тег сценария – user7424637

+0

это внутри контроллера? – Asqan

+5

Я все, если вы можете объяснить мне, как вы создаете переменную, начиная с :: – YannickHelmut

ответ

0

вы можете превратить его в угловой шаблон с помощью type="text/ng-template", таким образом, угловой будет компилировать его все доступные на текущей переменной области видимости:

<script type="text/ng-template" id"/my-template.html"> 
<div class="abcd"> 
    <div class="efg" data-price="{{::displayPrice}}"></div> 
</div> 

теперь вы можете использовать его в качестве шаблона маршрутизатора или ng-include="'my-template.html'" ,

Если вы не можете изменить тип шаблона, чем в контроллере вы можете скомпилировать HTML шаблоны (с помощью JQuery для примера и $compile службы), что-то вроде:

var yourAngularTpl = jQuery('[type="text/template"]').eq(0).html(); 
yourAngularTpl = $complie(yourAngularTpl)($scope); 

убедитесь $scope и $complie впрыскивают и вы есть jQuery (как JQuery Light angular.element() ограничена)

+0

Я решил эту проблему, переписав html. Спасибо, в любом случае – user7424637

0

в угловых мы привыкли использовать в контроллере (app.js)

$scope.price = "display some price"; 

в вашем HTML

<div>{{price}}</div>