var myApp=angular.module('myApp', []);
myApp.controller('phoneController', function($scope) {
$scope.phones = [{
name: 'Nokia Lumia 630',
year: 2014,
price: 200,
company: {
name: 'Nokia',
country: 'Финляндия'
}
},{
name: 'Samsung Galaxy S 4',
year: 2014,
price: 400,
company: {
name: 'Samsung',
country: 'Республика Корея'
}
},{
name: 'Mi 5',
year: 2015,
price: 300,
company: {
name: 'Xiaomi',
country: 'Китай'
}
}]
});
====ng-bind====
Директива //ng-bind// используется для создания односторонней привязки одного элемента html к какому-нибудь выражению. И если данное выражение изменится, то вместе с ним обновится и содержимое связанного элемента html. Например, в прошлом разделе мы использовали массив моделей phone. Свяжем элемент с одним из таких объектов:
Количество элементов:
Первый элемент:
Здесь идет привязка к длине массива phones и к первому его элементу. Если мы добавим в массив новый элемент или изменим название первого элемента, то соответственно изменится и текст в привязанных элементах //span//.
====ng-model====
Директива //ng-model// позволяет выполнять двустороннюю привязку как к свойствам объекта, так и к вложенным свойствам:
Директиву //ng-model// можно использовать для привязки к элементам //input, textarea и select//:
При изменении текста в поле ввода синхронно будет изменяться и привязанный к //phones[0].name// элемент p.
====ng-bind-template====
Директива //ng-bind-template// позволяет задать шаблон привязки с использованием выражений. Например:
====ng-non-bindable====
Но бывает, что нам надо, чтобы AngularJS не обрабатывал какие-то выражения и не использовал привязку. В этом случае мы можем применить директиву //ng-non-bindable//:
{{1 + 2}}
{{1 + 2}}
Если в первом случае AngularJS обработает выражение и выведет на страницу его результат, то во втором случае выражение будет выведено как есть.
====ng-bind-html====
Директива //ng-bind-html// позволяет выводить на страницу html-содержимое со всеми тегами. При использовании этой директивы необходимо помнить, результатом вывода может быть потенциально небезопасный код, например, содержащий javascript, поэтому данный аспект надо учитывать.
Чтобы осуществить привязку к коду html, надо подключить дополнительный файл. В архиве библиотеки, который можно найти на официальном сайте, имеется файл //angular-sanitize.js//, а также его минимизированный аналог. Положим этот файл в одну папку с главной библиотекой angularjs и изменим код страницы следующим образом:
{{ :angular:angularjs:5.png?600 |}}
Чтобы задествовать модуль //angular-sanitize//, надо при создании модуля установить зависимость от angular-sanitize: //var myApp = angular.module('myApp', ["ngSanitize"]);//. После этого мы сможем изменять код в текстовом поле, в том числе вносить код html, и все изменения автоматически будут применяться к веб-странице.