2015-06-14 3 views
2

Я новичок в Angular, но мне было интересно, могу ли я использовать переменную JS в выражении AngularJS (не уверен, называется ли это выражением). Самый простой способ я могу продемонстрировать это:Использование переменной в выражении AngularJS?

<code> 
    <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 
    <script> 
     var number = 10; 
    </script> 
    <div ng-app=""> 
     <p>My expression: {{ 5 + number}}</p> 
    </div> 
</code> 

Есть ли способ это сделать?

+0

Почему у вас есть переменные, существующие внешние контроллеры/службы/etc? –

+0

Нет, это невозможно. – Blackhole

+0

невозможно сделать. Но если вы действительно в отчаянии, у вас может быть «число» в объекте window, а в вашем контроллере можно сделать что-то вроде $ scope.number = window.number, а затем использовать его. Не скажешь, что. – Amit

ответ

4

Нет, вы не можете использовать глобальные переменные (или функции) в угловых выражениях. Угловые выражения - это просто атрибуты, поэтому строки, а не код Javascript. Угловой парсер ($parse service, sourse code) принимает эти атрибуты, анализирует их и оценивает по объекту облачности приложения с угловыми углами. Поэтому, чтобы использовать что-либо в выражении углов, оно должно быть определено в соответствующем объекте области видимости.

+0

Спасибо за это. Но можете ли вы направить меня в том, как я буду делать следующее. В [link] (http://jsfiddle.net/0e9j5wev/6/) мне нужно иметь возможность использовать разные строки (например, GoPro), который используется в примере). Поэтому при щелчке по продукту отображается конкретный контент этого продукта «{{products [0] .GoPro.Description}} '. Помощь будет принята с благодарностью – crbon

0

Вы не должны. Если вы сделаете это, вы убьете всю цель Углового. И не будет работать, как вы выразились. Еще я сделал для вас Плункер. Ведь глобальная переменная JavaScript может быть доступ из внутри контроллера, если он был определен до вашего контроллера code.It это все JavaScript после всех

http://plnkr.co/edit/LiwvNd4Nf5lW0HUsSyyq?p=preview

в HTML

<script> 
    var x = 7; 
</script> 

и контроллер

// in the controller 
    $scope.Foo=function(){ 
     return $scope.Page + x; 
    } 
Смежные вопросы