Поиск…


Угловые выражения - текст и номер

В этом примере показано, как вычисляются угловые выражения при использовании type="text" и type="number" для элемента ввода. Рассмотрим следующий контроллер и представление:

контроллер

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

 app.controller('ctrl', function($scope) {
     $scope.textInput = {
         value: '5'
     };     
     $scope.numberInput = {
         value: 5
     };
 });

Посмотреть

<div ng-app="app" ng-controller="ctrl">
    <input type="text" ng-model="textInput.value">
    {{ textInput.value + 5 }}
    <input type="number" ng-model="numberInput.value">
    {{ numberInput.value + 5 }}
</div>
  • При использовании + в выражении, привязанном к текстовому вводу, оператор объединяет строки (первый пример), отображая 55 на экране * .
  • При использовании + в выражении, связанном с номером ввода, оператор возвращает сумму чисел (второй пример), отображая 10 на экране * .

* - То есть, пока пользователь не изменит значение в поле ввода, после этого дисплей изменится соответствующим образом.

Рабочий пример

ngRepeat

ng-repeat - встроенная директива в Angular, которая позволяет вам перебирать массив или объект и дает вам возможность повторять элемент один раз для каждого элемента в коллекции.

ng-повторить массив

<ul>
    <li ng-repeat="item in itemCollection">
       {{item.Name}}
    </li>
</ul>

Куда:
item = отдельный элемент в коллекции
itemCollection = массив, который вы повторяете


ng-повторить объект

<ul>
    <li ng-repeat="(key, value) in myObject">
       {{key}} : {{value}}
    </li>
</ul>

Куда:
key = имя свойства
value = значение свойства
myObject = объект, который вы повторяете


отфильтруйте свой ng-repeat по пользовательскому вводу

<input type="text" ng-model="searchText">
<ul>
    <li ng-repeat="string in stringArray | filter:searchText">
       {{string}}
    </li>
</ul>

Куда:
searchText = текст, который пользователь хочет отфильтровать список
stringArray = массив строк, например ['string', 'array']

Вы также можете отображать или ссылаться на отфильтрованные элементы в другом месте, назначая выход фильтра псевдонимам с as aliasName , например:

<input type="text" ng-model="searchText">
<ul>
    <li ng-repeat="string in stringArray | filter:searchText as filteredStrings">
       {{string}}
    </li>
</ul>
<p>There are {{filteredStrings.length}} matching results</p>

ng-repeat-start и ng-repeat-end

Чтобы повторить несколько элементов DOM, определив начало и конечную точку, вы можете использовать директивы ng-repeat-start и ng-repeat-end .

<ul>
    <li ng-repeat-start="item in [{a: 1, b: 2}, {a: 3, b:4}]">
        {{item.a}}
    </li>
    <li ng-repeat-end>
        {{item.b}}
    </li>
</ul>

Выход:

  • 1
  • 2
  • 3
  • 4

Важно всегда закрывать ng-repeat-start с ng-repeat-end .

переменные

ng-repeat также предоставляет эти переменные внутри выражения

переменная Тип подробности
$index Число Равна индексу текущей итерации ($ index === 0 будет оценивать значение true на первом итерированном элементе, $first увидеть $first )
$first логический Вычисляет значение true при первом повторном элементе
$last логический Вычисляет значение true при последнем повторном элементе
$middle логический Вычисляет значение true, если элемент находится между $first и $last
$even логический Вычисляет значение true при четной итерации (эквивалентно $index%2===0 )
$odd логический Вычисляет значение true при нечетной итерации (эквивалентно $index%2===1 )

Требования к производительности

Рендеринг ngRepeat может стать медленным, особенно при использовании больших коллекций.

Если объекты в коллекции имеют свойство идентификатора, вы всегда должны track by идентификатор, а не весь объект, который является функциональностью по умолчанию. Если идентификатор отсутствует, вы всегда можете использовать встроенный $index .

<div ng-repeat="item in itemCollection track by item.id">
<div ng-repeat="item in itemCollection track by $index">

Область действия ngRepeat

ngRepeat всегда будет создавать изолированную область для ngRepeat , поэтому следует соблюдать осторожность, если к нему нужно получить доступ к родительской области внутри повтора.

Вот простой пример, показывающий, как вы можете установить значение в своей родительской области из события click внутри ngRepeat .

scope val:  {{val}}<br/>
ctrlAs val: {{ctrl.val}}
<ul>
    <li ng-repeat="item in itemCollection">
        <a href="#" ng-click="$parent.val=item.value; ctrl.val=item.value;">
            {{item.label}} {{item.value}}
        </a>
    </li>
</ul>

$scope.val = 0;
this.val = 0;

$scope.itemCollection = [{
    id: 0,
    value: 4.99,
    label: 'Football'
},
{
    id: 1,
    value: 6.99,
    label: 'Baseball'
},
{
    id: 2,
    value: 9.99,
    label: 'Basketball'
}];

Если в ng-click был только val = item.value он не будет обновлять val в родительской области из-за изолированной области. Вот почему доступ к родительской области осуществляется с помощью $parent reference или с синтаксисом controllerAs (например, ng-controller="mainController as ctrl" ).

Вложенные ng-repeat

Вы также можете использовать вложенный ng-repeat.

<div ng-repeat="values in test">
    <div ng-repeat="i in values">
      [{{$parent.$index}},{{$index}}] {{i}}
    </div>
</div>

var app = angular.module("myApp", []);
app.controller("ctrl", function($scope) {
  $scope.test = [
    ['a', 'b', 'c'],
    ['d', 'e', 'f']
  ];
});

Чтобы получить доступ к индексу родительского ng-repeat внутри дочернего ng-repeat, вы можете использовать $parent.$index .

ngShow и ngHide

Директива ng-show показывает или скрывает элемент HTML на основе того, передано ли ему выражение true или false. Если значение выражения ложно, то оно будет скрыто. Если это правда, то это покажет.

Директива ng-hide аналогична. Однако, если значение ложно, оно отобразит элемент HTML. Когда выражение правдиво, оно скроет его.

Рабочий пример JSBin

Контроллер :

var app = angular.module('app', []);
  
angular.module('app')
  .controller('ExampleController', ExampleController);
 
function ExampleController() {
  
  var vm = this;
  
  //Binding the username to HTML element
  vm.username = '';
  
  //A taken username
  vm.taken_username = 'StackOverflow';
  
}

Посмотреть

<section ng-controller="ExampleController as main">
    
    <p>Enter Password</p>
    <input ng-model="main.username" type="text">
    
    <hr>
    
    <!-- Will always show as long as StackOverflow is not typed in -->
    <!-- The expression is always true when it is not StackOverflow -->
    <div style="color:green;" ng-show="main.username != main.taken_username">
      Your username is free to use!
    </div>
    
    <!-- Will only show when StackOverflow is typed in -->
    <!-- The expression value becomes falsy -->
    <div style="color:red;" ng-hide="main.username != main.taken_username">
      Your username is taken!
    </div>
    
    <p>Enter 'StackOverflow' in username field to show ngHide directive.</p>
    
 </section>

ngOptions

ngOptions - это директива, упрощающая создание раскрывающегося окна html для выбора элемента из массива, который будет храниться в модели. Атрибут ngOptions используется для динамического создания списка элементов <option> для элемента <select> используя массив или объект, полученный путем оценки выражения понимания ngOptions.

С ng-options разметка может быть уменьшена до всего лишь тега select, и директива создаст тот же самый выбор:

<select ng-model="selectedFruitNgOptions" 
        ng-options="curFruit as curFruit.label for curFruit in fruit">
</select>

Существует еще один способ создания опций select с помощью ng-repeat , но не рекомендуется использовать ng-repeat поскольку он в основном используется для общего использования, например, forEach только для цикла. В то время как ng-options специально предназначено для создания опций select tag.

Вышеприведенный пример с использованием ng-repeat будет

<select ng-model="selectedFruit">
    <option ng-repeat="curFruit in fruit" value="{{curFruit}}">
        {{curFruit.label}}
    </option>
</select>

ПОЛНЫЙ ПРИМЕР

Давайте рассмотрим приведенный выше пример подробно и с некоторыми изменениями в нем.

Модель данных для примера:

$scope.fruit = [
    { label: "Apples", value: 4, id: 2 },
    { label: "Oranges", value: 2, id: 1 },
    { label: "Limes", value: 4, id: 4 },
    { label: "Lemons", value: 5, id: 3 }
];

<!-- label for value in array -->
<select ng-options="f.label for f in fruit" ng-model="selectedFruit"></select>

Тег опции, сгенерированный при выборе:

 <option value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Последствия:

f.label будет меткой <option> и значение будет содержать весь объект.

ПОЛНЫЙ ПРИМЕР


<!-- select as label for value in array -->
<select ng-options="f.value as f.label for f in fruit" ng-model="selectedFruit"></select>

Тег опции, сгенерированный при выборе:

 <option value="4"> Apples </option>

Последствия:

f.value (4) будет значением в этом случае, в то время как метка остается прежней.

ПОЛНЫЙ ПРИМЕР


<!-- label group by group for value in array -->
<select ng-options="f.label group by f.value for f in fruit" ng-model="selectedFruit"></select>

Тег опции, сгенерированный при выборе:

<option value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Последствия:

Параметры будут сгруппированы в зависимости от value . Варианты с одинаковым value будут подпадать под одну категорию

ПОЛНЫЙ ПРИМЕР


<!-- label disable when disable for value in array -->
<select ng-options="f.label disable when f.value == 4 for f in fruit" ng-model="selectedFruit"></select>

Тег опции, сгенерированный при выборе:

<option disabled="" value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Последствия:

«Яблоки» и «Лаймы» будут отключены (невозможно выбрать) из-за того, что условие disable when f.value==4 . Все параметры со value=4 должны быть отключены

ПОЛНЫЙ ПРИМЕР


<!-- label group by group for value in array track by trackexpr -->
<select ng-options="f.value as f.label group by f.value for f in fruit track by f.id" ng-model="selectedFruit"></select>

Тег опции, сгенерированный при выборе:

<option value="4"> Apples </option>

Последствия:

При использовании trackBy нет визуальных изменений, но Angular обнаруживает изменения по id вместо ссылки, которая всегда является лучшим решением.

ПОЛНЫЙ ПРИМЕР


<!-- label for value in array | orderBy:orderexpr track by trackexpr -->
<select ng-options="f.label for f in fruit | orderBy:'id' track by f.id" ng-model="selectedFruit"></select>

Тег опции, сгенерированный при выборе:

<option disabled="" value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Последствия:

orderBy - это стандартный фильтр AngularJS, который упорядочивает параметры в порядке возрастания (по умолчанию), поэтому «Апельсины» в этом появятся 1-м, так как его id = 1.

ПОЛНЫЙ ПРИМЕР


Все <select> с ng-options должны иметь прикрепленную ng-model .

ngModel

С ng-моделью вы можете привязать переменную к любому типу поля ввода. Вы можете отобразить переменную, используя двойные фигурные скобки, например {{myAge}} .

<input type="text" ng-model="myName">
<p>{{myName}}</p>

Когда вы вводите поле ввода или меняете его каким-либо образом, вы сразу увидите значение в обновлении абзаца.

В этом случае переменная ng-model будет доступна в вашем контроллере как $scope.myName . Если вы используете синтаксис controllerAs :

<div ng-controller="myCtrl as mc">
    <input type="text" ng-model="mc.myName">
    <p>{{mc.myName}}</p>
</div>

Вам нужно будет обратиться к области контроллера, предварительно отложив псевдоним контроллера, определенный в атрибуте ng-controller, на переменную ng-model. Таким образом вам не нужно вводить $scope в ваш контроллер, чтобы ссылаться на вашу переменную ng-model, переменная будет доступна как this.myName внутри функции вашего контроллера.

ngClass

Предположим, что вам нужно показать статус пользователя, и у вас есть несколько возможных классов CSS, которые можно использовать. Угловое позволяет легко выбирать из списка нескольких возможных классов, которые позволяют указать список объектов, которые включают условные обозначения. Угловой способ может использовать правильный класс, основанный на правдивости условностей.

Ваш объект должен содержать пары ключ / значение. Ключ - это имя класса, которое будет применяться, когда значение (условное) будет равно true.

<style>
    .active { background-color: green; color: white; }
    .inactive { background-color: gray; color: white; }
    .adminUser { font-weight: bold; color: yellow; }
    .regularUser { color: white; }
</style>

<span ng-class="{ 
    active: user.active, 
    inactive: !user.active, 
    adminUser: user.level === 1, 
    regularUser: user.level === 2 
}">John Smith</span>

Угловой будет проверять объект $scope.user чтобы увидеть active статус и номер level . В зависимости от значений этих переменных, Angular будет применять стиль соответствия к <span> .

ngIf

ng-if - директива, подобная ng-show но вставляет или удаляет элемент из DOM вместо простого его скрытия. Угловая 1.1.5 введена директива ng-If. Вы можете использовать директиву ng-if выше версий 1.1.5. Это полезно, потому что Angular не будет обрабатывать дайджесты для элементов внутри удаленной ng-if уменьшить рабочую нагрузку Angular, особенно для сложных привязок данных.

В отличие от ng-show , директива ng-if создает дочернюю область, которая использует прототипное наследование. Это означает, что установка примитивного значения в области дочерних объектов не будет применяться к родительскому элементу. Чтобы установить примитив в родительской области, необходимо использовать свойство $parent в области дочернего объекта.

JavaScript

angular.module('MyApp', []);

angular.module('MyApp').controller('myController', ['$scope', '$window', function myController($scope, $window) {
    $scope.currentUser= $window.localStorage.getItem('userName');
}]);

Посмотреть

<div ng-controller="myController">
    <div ng-if="currentUser">
        Hello, {{currentUser}}
    </div>
    <div ng-if="!currentUser">
        <a href="/login">Log In</a>
        <a href="/register">Register</a>
    </div>
</div>

DOM Если currentUser является неопределенным

<div ng-controller="myController">
    <div ng-if="currentUser">
        Hello, {{currentUser}}
    </div>
    <!-- ng-if: !currentUser -->
</div>

DOM Если currentUser не определено

<div ng-controller="myController">
    <!-- ng-if: currentUser -->
    <div ng-if="!currentUser">
        <a href="/login">Log In</a>
        <a href="/register">Register</a>
    </div>
</div>

Рабочий пример

Функция обещания

Директива ngIf также принимает функции, которые логически требуют возврата true или false.

<div ng-if="myFunction()">
    <span>Span text</span>
</div>

Текст диапазона появится, только если функция вернет значение true.

$scope.myFunction = function() {
    var result = false;
    // Code to determine the boolean value of result 
    return result;
};

Как любое угловое выражение, функция принимает любые переменные.

ngMouseenter и ngMouseleave

ng-mouseenter и ng-mouseleave полезны для запуска событий и применения стилизации CSS, когда вы наводите на себя или вне своих элементов DOM.

В директиве ng-mouseenter выполняется выражение, которое является одним из событий ввода мыши (когда пользователь вводит указатель мыши над элементом DOM, в котором находится эта директива)

HTML

<div ng-mouseenter="applyStyle = true" ng-class="{'active': applyStyle}">

В приведенном выше примере, когда пользователь наводит указатель мыши на div , applyStyle обращается к true , что, в свою очередь, применяет класс .active CSS в ng-class .

Директива ng-mouseleave выполняет выражение одно событие выхода мыши (когда пользователь отводит указатель мыши от элемента DOM, в котором находится эта директива)

HTML

<div ng-mouseenter="applyStyle = true" ng-mouseleaver="applyStyle = false" ng-class="{'active': applyStyle}">

Повторяя первый пример, теперь, когда пользователь убирает указатель мыши из div, класс .active удаляется.

ngDisabled

Эта директива полезна для ограничения входных событий на основе определенных существующих условий.

Директива ng-disabled принимает и выражение, которое должно оценивать как правдивые, так и ложные значения.

ng-disabled используется для условного применения disabled атрибута на input элементе.

HTML

<input type="text" ng-model="vm.name">

<button ng-disabled="vm.name.length===0" ng-click="vm.submitMe">Submit</button>

vm.name.length===0 оценивается как true, если длина input равна 0, что отключает кнопку, vm.name.length===0 событие click ng-click

ngDblclick

Директива ng-dblclick полезна, когда вы хотите привязать событие двойного щелчка к вашим элементам DOM.

Эта директива принимает выражение

HTML

<input type="number" ng-model="num = num + 1" ng-init="num=0">

<button ng-dblclick="num++">Double click me</button>

В приведенном выше примере значение, удерживаемое на input будет увеличиваться при двойном нажатии кнопки.

Встроенные директивы Cheat Sheet

ng-app Устанавливает раздел AngularJS.

ng-init Устанавливает значение переменной по умолчанию.

ng-bind Альтернатива шаблону {{}}.

ng-bind-template Привязывает к выражению несколько выражений.

ng-non-bindable утверждает, что данные не являются связываемыми.

ng-bind-html Связывает внутреннее свойство HTML элемента HTML.

ng-change Вычисляет указанное выражение, когда пользователь меняет ввод.

ng-checked Устанавливает флажок.

ng-class Устанавливает класс css динамически.

ng-cloak Предотвращает показ содержимого до тех пор, пока AngularJS не примет управление.

ng-click Выполняет метод или выражение при нажатии элемента.

ng-controller Присоединяет класс контроллера к представлению.

ng-disabled Управляет отключенным свойством элемента формы

ng-form Устанавливает форму

ng-href Динамически связывать переменные AngularJS с атрибутом href.

ng-include Используется для извлечения, компиляции и включения внешнего HTML-фрагмента на вашу страницу.

ng-if Удалить или воссоздать элемент в DOM в зависимости от выражения

ng-switch Условное управление переключением на основе соответствия выражения.

ng-model Привязывает элементы ввода, select, textarea и т. д. с свойством model.

ng-readonly Используется для установки атрибута readonly для элемента.

ng-repeat Используется для прокрутки каждого элемента в коллекции для создания нового шаблона.

ng-selected Используется для установки выбранной опции в элементе.

ng-show/ng-hide Показать / скрыть элементы на основе выражения.

ng-src Динамически связывать переменные AngularJS с атрибутом src.

ng-submit Привязать угловые выражения к событиям onsubmit.

ng-value Привяжите угловые выражения к значению.

ng-required Привязать угловые выражения к событиям onsubmit.

ng-style Устанавливает ng-style CSS в HTML-элементе.

ng-pattern Добавляет шаблонный шаблон для ngModel.

ng-maxlength Добавляет модуль проверки maxlength в ngModel.

ng-minlength Добавляет средство проверки длины minlength в ngModel.

ng-classeven Работает совместно с ngRepeat и вступает в силу только с нечетными (четными) строками.

ng-classodd Работает совместно с ngRepeat и вступает в силу только для нечетных (четных) строк.

ng-cut Используется для указания пользовательского поведения на событии cut.

ng-copy Используется для указания пользовательского поведения в событии копирования.

ng-paste Используется для указания пользовательского поведения при вставке.

ng-options Используется для динамического создания списка элементов для элемента.

ng-list Используется для преобразования строки в список на основе указанного разделителя.

ng-open Используется для установки атрибута open для элемента, если выражение внутри ngOpen является правдивым.

Источник (отредактирован немного)

ngClick

Директива ng-click прикрепляет событие click к элементу DOM.

Директива ng-click позволяет указать настраиваемое поведение при нажатии элемента DOM.

Это полезно, когда вы хотите прикреплять события кликов на кнопках и обрабатывать их на контроллере.

Эта директива принимает выражение с объектом событий, доступным как $event

HTML

<input ng-click="onClick($event)">Click me</input>

контроллер

.controller("ctrl", function($scope) {   
    $scope.onClick = function(evt) {
        console.debug("Hello click event: %o ",evt);
    } 
})

HTML

<button ng-click="count = count + 1" ng-init="count=0">
  Increment
</button>
<span>
  count: {{count}}
</span>

HTML

<button ng-click="count()" ng-init="count=0">
  Increment
</button>
<span>
  count: {{count}}
</span>

контроллер

...

$scope.count = function(){
    $scope.count = $scope.count + 1;
}
...

Когда нажимается кнопка, вызов функции onClick будет печатать «Hello click event», за которым следует объект события.

ngRequired

ng-required добавляют или удаляют required атрибут проверки на элемент, который , в свою очередь , будет включать и выключать require проверки ключа для input .

Он используется для опционального определения того, требуется ли input элементу иметь непустое значение. Директива полезна при разработке валидации на сложных HTML-формах.

HTML

<input type="checkbox" ng-model="someBooleanValue">
<input type="text" ng-model="username" ng-required="someBooleanValue">

нг-модель-опция

ng-model-options позволяют изменять поведение ng-model по умолчанию, эта директива позволяет регистрировать события, которые будут срабатывать при обновлении ng-модели и приложить эффект отладки.

Эта директива принимает выражение, которое будет оценивать объект определения или ссылку на значение области.

Пример:

<input type="text" ng-model="myValue" ng-model-options="{'debounce': 500}">

В приведенном выше примере будет добавлен эффект myValue 500 миллисекунд на myValue , который заставит модель обновить 500 мс после того, как пользователь завершит ввод текста над input (то есть, когда myValue закончит обновление).

Доступные свойства объекта

  1. updateOn : указывает, какое событие должно быть привязано к вводу

    ng-model-options="{ updateOn: 'blur'}" // will update on blur
    
  2. debounce : указывает задержку в несколько миллисекунд к обновлению модели

    ng-model-options="{'debounce': 500}" // will update the model after 1/2 second
    
  3. allowInvalid : логический флаг, допускающий недопустимое значение модели, обходя проверку по умолчанию по умолчанию, по умолчанию эти значения будут считаться undefined .

  4. getterSetter : логический флаг, указывающий, следует ли рассматривать ng-model как функцию getter / setter вместо значения простой модели. Затем функция запустится и вернет значение модели.

    Пример:

    <input type="text" ng-model="myFunc" ng-model-options="{'getterSetter': true}">
    
    $scope.myFunc = function() {return "value";}
    
  5. timezone : определяет часовой пояс для модели, если ввод имеет date или time . типы

ngCloak

Директива ngCloak используется для предотвращения кратковременного отображения браузера в виде необработанной (не скомпилированной) формы, когда приложение загружается. - Просмотр источника

HTML

<div ng-cloak>
  <h1>Hello {{ name }}</h1>
</div>

ngCloak можно применить к элементу body, но предпочтительным применением является применение нескольких директив ngCloak к небольшим частям страницы, чтобы обеспечить прогрессивную визуализацию просмотра браузера.

Директива ngCloak не имеет параметров.

См. Также: Предотвращение мерцания

ngInclude

ng-include позволяет делегировать управление одной частью страницы конкретному контроллеру. Вы можете сделать это, потому что сложность этого компонента становится такой, что вы хотите инкапсулировать всю логику в выделенный контроллер.

Пример:

  <div ng-include
       src="'/gridview'"
       ng-controller='gridController as gc'>
  </div>

Обратите внимание, что /gridview должен обслуживаться веб-сервером как отдельный и законный URL-адрес.

Также обратите внимание, что src Attribute принимает угловое выражение. Это может быть вызов переменной или функции, например, или, как в этом примере, строковая константа. В этом случае вам нужно обязательно обернуть исходный URL в одинарные кавычки , поэтому он будет оцениваться как строковая константа. Это общий источник путаницы.

Внутри /gridview html вы можете ссылаться на gridController как если бы он был обернут вокруг страницы, например:

<div class="row">
  <button type="button" class="btn btn-default" ng-click="gc.doSomething()"></button>
</div>

ngSrc

Использование Угловой разметки, такой как {{hash}} в атрибуте src, не работает правильно. Браузер будет извлекать из URL с буквальным текстом {{hash}} пока Angular не заменит выражение внутри {{hash}} . Директива ng-src переопределяет исходный атрибут src для элемента тега изображения и решает проблему

<div ng-init="pic = 'pic_angular.jpg'">
    <h1>Angular</h1>
    <img ng-src="{{pic}}">
</div>

ngPattern

Директива ng-pattern принимает выражение, которое оценивает шаблон регулярного выражения и использует этот шаблон для проверки текстового ввода.

Пример:

Допустим, мы хотим, чтобы элемент <input> стал действительным, когда его значение (ng-model) является допустимым IP-адресом.

Шаблон:

<input type="text" ng-model="ipAddr" ng-pattern="ipRegex" name="ip" required>

контроллер:

$scope.ipRegex = /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/;

ngValue

В основном используется в ng-repeat ngValue полезно при динамическом создании списков переключателей с помощью ngRepeat

<script>
   angular.module('valueExample', [])
     .controller('ExampleController', ['$scope', function($scope) {
       $scope.names = ['pizza', 'unicorns', 'robots'];
       $scope.my = { favorite: 'unicorns' };
     }]);
</script>
 <form ng-controller="ExampleController">
   <h2>Which is your favorite?</h2>
     <label ng-repeat="name in names" for="{{name}}">
       {{name}}
       <input type="radio"
              ng-model="my.favorite"
              ng-value="name"
              id="{{name}}"
              name="favorite">
     </label>
   <div>You chose {{my.favorite}}</div>
 </form>

Рабочий плнкр

ngCopy

Директива ngCopy указывает поведение, которое должно выполняться в событии копирования.

Предотвращение копирования пользователем данных

<p ng-copy="blockCopy($event)">This paragraph cannot be copied</p>

В контроллере

$scope.blockCopy = function(event) {
    event.preventDefault();
    console.log("Copying won't work");
}

ngPaste

Директива ngPaste определяет пользовательское поведение для запуска, когда пользователь вставляет содержимое

<input ng-paste="paste=true" ng-init="paste=false" placeholder='paste here'>
pasted: {{paste}}

ngHref

ngHref используется вместо атрибута href, если у нас есть угловые выражения внутри значения href. Директива ngHref переопределяет исходный атрибут href тега html с использованием атрибута href, такого как тег, тег и т. Д.

Директива ngHref гарантирует, что ссылка не будет нарушена, даже если пользователь нажимает ссылку до того, как AngularJS проверит код.

Пример 1

<div ng-init="linkValue = 'http://stackoverflow.com'">
    <p>Go to <a ng-href="{{linkValue}}">{{linkValue}}</a>!</p>
</div>

Пример 2 Этот пример динамически получает значение href из поля ввода и загружает его как значение href.

<input ng-model="value" />
<a id="link" ng-href="{{value}}">link</a>

Пример 3.

<script>
angular.module('angularDoc', [])
.controller('myController', function($scope) {
  // Set some scope value.
  // Here we set bootstrap version.
  $scope.bootstrap_version = '3.3.7';
   
  // Set the default layout value
  $scope.layout = 'normal';
});
</script>
<!-- Insert it into Angular Code -->
<link rel="stylesheet" ng-href="//maxcdn.bootstrapcdn.com/bootstrap/{{ bootstrap_version }}/css/bootstrap.min.css">
<link rel="stylesheet" ng-href="layout-{{ layout }}.css">

ngList

Директива ng-list используется для преобразования строки с разделителями из текстового ввода в массив строк или наоборот.

Директива ng-list использует разделитель по умолчанию ", " (запятая).

Вы можете установить разделитель вручную, назначив ng-list делителю, подобному этому ng-list="; " .

В этом случае разделитель устанавливается в полуточку с последующим пробелом.

По умолчанию ng-list имеет атрибут ng-trim которого установлено значение true. ng-trim когда false, будет соблюдать пробелы в вашем разделителе. По умолчанию ng-list не учитывает пробелы, если вы не установите ng-trim="false" .

Пример:

angular.module('test', [])
  .controller('ngListExample', ['$scope', function($scope) {
    $scope.list = ['angular', 'is', 'cool!'];
}]);

Пользовательский разделитель установлен ; , И модель окна ввода устанавливается в массив, который был создан в области.

  <body ng-app="test" ng-controller="ngListExample">
    <input ng-model="list" ng-list="; " ng-trim="false">
  </body>

Поле ввода будет отображаться с содержимым: angular; is; cool!



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow